离散化

const int maxn=1e5+10;
int a[maxn], t[maxn], b[maxn];
int n;
scanf("%d",&n);
for(int i=1; i<=n; i++)
    scanf("%d",&a[i]),t[i]=a[i];
sort(t+1,t+n+1);
m=unique(t+1,t+1+n)-t-1;//求出的m为不重复的元素的个数
for(int i=1; i<=n; i++)
    b[i]=lower_bound(t+1,t+1+m,a[i])-t;
//a[i]为原来的数组,b[i]为离散化后的数组

 

posted @ 2020-04-26 23:02  /Ranger  阅读(84)  评论(0编辑  收藏  举报