有两种方法,只贴出较为简便的一种 stl 实现离散化
1 #include<algorithm> // 头文件 2 //n 原数组大小 num 原数组中的元素 lsh 离散化的数组 cnt 离散化后的数组大小 3 int lsh[MAXN] , cnt , num[MAXN] , n; 4 for(int i=1; i<=n; i++) { 5 scanf("%d",&num[i]); 6 lsh[i] = num[i]; 7 } 8 sort(lsh+1 , lsh+n+1); 9 cnt = unique(lsh+1 , lsh+n+1) - lsh - 1; 10 for(int i=1; i<=n; i++) 11 num[i] = lower_bound(lsh+1 , lsh+cnt+1 , num[i]) - lsh;
原文:https://www.cnblogs.com/LH2000/p/12372284.html