复杂度O(nlog(n))O(nlog(n))O(nlog(n)):

//vector+sort+unique+lower_bound
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6+5;
int n,a[maxn];
vector <int> key;
int main(){
	cin >> n;
	for(int i = 0; i < n; i++) {
		cin >> a[i];
		key.push_back(a[i]);
	}
	sort(key.begin(),key.end());
	int m = unique(key.begin(), key.end()) - key.begin();
	for(int i = 0; i < n; i++) {
	//lower_bound返回数组下标,加1是为了从1开始
		a[i] = lower_bound(key.begin(), key.end(), a[i]) - key.begin() + 1;
	}
	return 0;
}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐