当前位置:网站首页>leetcode-1331:数组序号转换
leetcode-1331:数组序号转换
2022-07-29 05:38:00 【菊头蝙蝠】
题目
给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号。
序号代表了一个元素有多大。序号编号的规则如下:
序号从 1 开始编号。
一个元素越大,那么序号越大。如果两个元素相等,那么它们的序号相同。
每个数字的序号都应该尽可能地小。
示例 1:
输入:arr = [40,10,20,30]
输出:[4,1,2,3]
解释:40 是最大的元素。 10 是最小的元素。 20 是第二小的数字。 30 是第三小的数字。
示例 2:
输入:arr = [100,100,100]
输出:[1,1,1]
解释:所有元素有相同的序号。
示例 3:
输入:arr = [37,12,28,9,100,56,80,5,12]
输出:[5,3,4,2,8,6,7,1,3]
解题
方法一:排序+哈希
排序,并用哈希记录每个数的序号即可
class Solution {
public:
vector<int> arrayRankTransform(vector<int>& arr) {
if(arr.size()==0) return {
};
vector<int> tmp=arr;
sort(tmp.begin(),tmp.end());
unordered_map<int,int> mp;
int index=1;
for(int num:tmp){
if(!mp.count(num)) mp[num]=index++;
}
vector<int> res;
for(int num:arr) res.push_back(mp[num]);
return res;
}
};
边栏推荐
猜你喜欢

5g service interface and reference point

MySQL:当你CRUD时BufferPool中发生了什么?十张图就能说清楚

猜数字//第一次使用生成随机数

Shallow reading of shared lock source code of abstractqueuedsynchronizer (AQS)

【论文阅读】TomoAlign: A novel approach to correcting sample motion and 3D CTF in CryoET

CDM—码分复用(简单易懂)

C language memory stack and heap usage

Relationship between subnet number, host number and subnet mask

基于噪声伪标签和对抗性学习的医学图像分割注释有效学习

王树尧老师运筹学课程笔记 07 线性规划与单纯形法(标准型、基、基解、基可行解、可行基)
随机推荐
Instruction rearrangement under multithreading concurrency
王树尧老师运筹学课程笔记 09 线性规划与单纯形法(单纯形表的应用)
【讲座笔记】如何在稀烂的数据中做深度学习?
有用网站
【经验】通过跳板机远程连接内网服务器的相关配置
数据库持久化+JDBC数据库连接
【笔记】The art of research(明白问题的重要性)
STP spanning tree principle and example of election rules
Apisik health check test
吴恩达老师机器学习课程笔记 02 单变量线性回归
20个hacker神器
'function vtable for error: undefined reference to ... ' 问题的原因及解决方法
如何优雅的写 Controller 层代码?
猜数字//第一次使用生成随机数
王树尧老师运筹学课程笔记 02 高等数学基础
基于Matlab解决线性规划问题
10道面试常问JVM题
ping 原理
吴恩达老师机器学习课程笔记 01 引言
Huawei switch ce12808 import and export configuration file