离散化:当处理的数据只需要考虑其在逻辑上的大小关系而非实际数值大小,通常会进行离散化处理。
#include#include #include using namespace std; const int N = 1e5 + 5; int lsh[N], cnt, num[N], n; int main() { cin >> n; for (int i = 1; i <= n; i++) { cin >> num[i]; lsh[i] = num[i]; //备份,后面会进行去重处理 } sort(lsh + 1, lsh + n + 1); //去重 cnt = unique(lsh + 1, lsh + n + 1) - lsh - 1; for (int i = 1; i <= n; i++) { num[i] = lower_bound(lsh + 1, lsh + cnt + 1, num[i]) - lsh; cout << num[i] << ' '; } return 0; }



