离散化

#include<bits/stdc++.h>
using namespace std;
int a[10001],b[10001];
int n;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
       cin>>a[i];    
       b[i]=a[i];
    }
    sort(b+1,b+n+1);
    int len=unique(b+1,b+n+1)-(b+1);
    for(int i=1;i<=n;i++)
        a[i]=lower_bound(b+1,b+len+1,a[i])-b;
    for(int i=1;i<=n;i++) cout<<a[i]<<' ';
    return 0;
}
原文地址:https://www.cnblogs.com/war1111/p/7323444.html