当前位置:网站首页>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;
}
};
边栏推荐
猜你喜欢

Teacher wangshuyao's notes on operations research 04 fundamentals of linear algebra

Apisik health check test

新同事写了几段小代码,把系统给搞崩了,被老板爆怼一顿!

Actual combat! Talk about how to solve the deep paging problem of MySQL

SQL developer graphical window to create database (tablespace and user)

为什么5G N2接口控制面使用SCTP协议?

The core of openresty and cosocket

JMM memory model concept

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

【冷冻电镜|论文阅读】emClarity:用于高分辨率冷冻电子断层扫描和子断层平均的软件
随机推荐
王树尧老师运筹学课程笔记 03 KKT定理
联邦学习后门攻击总结(2019-2022)
网络工具中的“瑞士军刀”-nc
王树尧老师运筹学课程笔记 01 导学与绪论
Shallow reading of condition object source code
Database multi table query joint query add delete modify query
JVM之垃圾回收机制(GC)
Case supplement, ATM
吴恩达老师机器学习课程笔记 03 线性代数回顾
Hongke share | bring you a comprehensive understanding of "can bus error" (II) -- can error types
数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法
关于SQL Server语句入门级应用阶段性学习——找工作必备(一)
崔雪婷老师最优化理论与方法课程笔记 00 写在前面
Shell脚本-全局变量、局部变量、环境变量
N2 interface of 5g control plane protocol
Instant 新日期类的使用 API
The latest pycharm2018 cracking tutorial
Computer right mouse click always turn around what's going on
Difference between CNAME record and a record
【冷冻电镜】RELION4.0之subtomogram对位功能源码分析(自用)