描述 离散化就是用数字的相对值替代它们的绝对值。离散化是一种数据处理的技巧,它把分布广而下属的数据转换为密集分布,从而能够让算法更快捷、更省空间地处理 现在,给你一个数组,要求你输出他们的排名,保持位置不变 如果有相同的数字,着这两个(或者更多)先出现的数字默认必后出现的排名高 输入描述 第一行,一个整数n 第二行,n个放进数组的数 输出描述 它们的排名 用例输入 1 5 4000 201 11 45 830 用例输出 1 5 3 1 2 4 用例输入 2 5 4000 201 11 45 11 用例输出 2 5 4 1 3 2c++代码
时间: 2024-03-18 12:39:17 浏览: 73
定点数的表示分为三种原码、反码、补码-数字信号处理课件
```
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> nums(n); // 存放原数组
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
vector<int> sortedNums(nums); // 存放排好序的数组
sort(sortedNums.begin(), sortedNums.end()); // 排序
sortedNums.erase(unique(sortedNums.begin(), sortedNums.end()), sortedNums.end()); // 去重
for (int i = 0; i < n; i++) {
int rank = lower_bound(sortedNums.begin(), sortedNums.end(), nums[i]) - sortedNums.begin(); // 二分查找排名
cout << rank + 1 << " ";
}
cout << endl;
return 0;
}
```
阅读全文