leetcode1331 数组序号转换

一、问题描述

二、解题思路

首先,将原数组按照从小到大排序,使用map记录每个元素的序号index,最后将arr中的元素替换为元素对应的hash值即可。

三、代码实现

cpp 复制代码
class Solution {
public:
    vector<int> arrayRankTransform(vector<int>& arr) {
        vector<int> v(arr.begin(),arr.end());
        sort(v.begin(),v.end());
        unordered_map<int,int> hash;
        int index=1;
        //统计每个元素的序号
        for(int x:v){
            if(hash.count(x)==0){
                hash[x]=index;
                index++;
            } 
        }
               
        //修改原数组
        for(int i=0;i!=arr.size();i++)
            arr[i]=hash[arr[i]];
        return arr;
    }
};
相关推荐
曦樂~6 小时前
Cpp面筋
c语言·c++
道尔柯南6 小时前
C++ string 类详解:从常用接口到深拷贝,彻底掌握字符串处理
android·java·c++
Dream it possible!9 小时前
LeetCode 面试经典 150_多维动态规划_交错字符串(97_C++_中等)
算法·leetcode·面试·动态规划
心抵鹊9 小时前
算法之双指针系列(一)
算法·leetcode
十二9 小时前
【洛谷题解】P1083 [NOIP 2012 提高组] 借教室(二分答案 + 差分)
数据结构·c++·算法·蓝桥杯
小此方10 小时前
[算法实战论:动态规划]回文串问题的dp解法,回文串问题的母题,以及以此为基础的派生题
算法·动态规划
Pniubi11 小时前
力扣560.和为k的子数组
算法·leetcode·职场和发展
D e re k ZH11 小时前
C++ 从零入门(一):基础语法与程序结构
数据结构·c++·算法
Pniubi12 小时前
力扣438.找到字符串中所有字母异位词
算法·leetcode·职场和发展
zjxtxdy13 小时前
C++面向对象程序开发-类与对象
开发语言·c++