离散化
把长度为 的 数组映射成只有 的整数的 数组,其中返回值 是 中元素个数。
int discrete(int n,int *a){
int b[N];
for(int i=1;i<=n;i++)
b[i]=a[i];
sort(b+1,b+n+1);
int tot=unique(b+1,b+n+1)-(b+1);
for(int i=1;i<=n;i++)
a[i]=lower_bound(b+1,b+tot+1,a[i])-b;
return tot;
}
空间复杂度 ,时间复杂度 。

浙公网安备 33010602011771号