1. 程式人生 > 實用技巧 >C++陣列去重

C++陣列去重

#include <iostream>
#include <cstdio>
#include <functional>//less<int>
#include <algorithm>
using namespace std;


int main(){
    int n;
    scanf("%d",&n);

    int a[101];
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    sort(a,a+n,less<int>());//
排序 n = unique(a,a+n)-a;//去重 if(n==1){ cout<<'0'<<" "<<'0'<<" "<<'0'<<" "<<'0'; return 0; } cout<<a[n-1]-a[n-2]<<" "<<a[n-1]-a[1]<<" "<<a[n-2]-a[1]<<" "<<a[n-2]-a[0]; return 0; }

#include <iostream>#include <cstdio>#include <functional>//less<int>#include <algorithm>using namespace std;


int main(){ int n; scanf("%d",&n);
int a[101]; for(int i=0;i<n;i++){ scanf("%d",&a[i]); } sort(a,a+n,less<int>());//排序
n = unique(a,a+n)-a;//去重


if(n==1){ cout<<'0'<<" "<<'0'<<" "<<'0'<<" "<<'0'; return 0; }
cout<<a[n-1]-a[n-2]<<" "<<a[n-1]-a[1]<<" "<<a[n-2]-a[1]<<" "<<a[n-2]-a[0]; return 0;


}