离散化操作代码

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int maxn=1e5+10;
 4 int a[maxn];
 5 int b[maxn];
 6 int main()
 7 {
 8     int n;
 9     scanf("%d",&n);
10     for(int i=1;i<=n;i++){
11         scanf("%d",&a[i]);
12         b[i]=a[i];
13     }
14     //复制一个数组为a[]
15     sort(a+1,a+1+n);  //将数组a[]从小到大排序然后进行离散化
16     int limit=unique(a+1,a+1+n)-a-1;
17     for(int i=1;i<=n;i++){
18         //将原来的值代入,就能够得出离散化后的值
19         int ans=lower_bound(a+1,a+1+limit,b[i])-a;
20         printf("%d ",ans);
21     }
22     printf("\n");
23     return 0;
24 }

猜你喜欢

转载自www.cnblogs.com/pangbi/p/12193354.html
今日推荐