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;
    }
};
相关推荐
致Great6 小时前
Pi 的上下文压缩,到底是怎么工作的?
算法
wuyk5556 小时前
4.树:一对多的层次数据结构
开发语言·数据结构·stm32·单片机
watersink7 小时前
机器学习聚类算法
算法·机器学习·聚类
luj_17687 小时前
桥牌思维启示:系统设计的模块化架构
c语言·开发语言·c++·经验分享·算法
会周易的程序员8 小时前
aiDgePLC iec61131 虚拟机 完整使用文档
c++·物联网·架构·st·iec61131
小小龙学IT9 小时前
Boost.Beast 深度实战:基于 Asio 的开源 C++ HTTP/WebSocket 协议库
c++·websocket·http
饼饼学习空间智能9 小时前
家庭服务机器人训练数据怎么积累?仿真、真实采集与持续学习的技术路线分析
人工智能·算法·机器学习
不可求~10 小时前
C++ std::string_view 不是字符串:从悬空引用到安全用法
java·开发语言·c++
en.en..10 小时前
数据结构考点解析:逻辑闭环与存储循环辨析
数据结构