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;
    }
};
相关推荐
把我格子衫拿来8 小时前
VTK 与 Qt 的 CMake 工程怎么组织?模块、工具链与二进制兼容排错
c++·qt·vtk·cmake·工程实践
总裁余(余登武)8 小时前
K-means算法改进(Python版)
python·算法·kmeans
灯澜忆梦8 小时前
【面向对象编程c++】| 指针与自定义数据类型
开发语言·c++·算法
xxwl5859 小时前
区域赛算法模版第八章---贪心(Greedy)
c++·笔记·学习·算法
雾沉川9 小时前
Visual C++运行库合集 v105.0 安装教程
开发语言·c++·dll
_wyt0019 小时前
洛谷P17461 [GESP202609 八级] 生成树计数 题解
c++·数学·树·gesp·八级·仙人掌
CCblandy9 小时前
向量检索 ANN 参数实测:换一种数据分布,recall 掉了 51 个百分点
人工智能·python·算法·自然语言处理·性能优化
CS创新实验室9 小时前
一棵树怎么做到“自平衡还不太费力“?——红黑树的旋转与染色
数据结构·算法·红黑树·408·计算机考研
Logic1019 小时前
C语言/数据结构位运算题解:异或XOR找出被挑选一次的果子编号——只出现一次的数字
c语言·数据结构·算法·数组·位运算·时间复杂度·空间复杂度
深圳市快瞳科技有限公司10 小时前
面向端侧部署的多帧宠物身份识别:完整性评分机制与工程约束
人工智能·算法·计算机视觉·端侧ai·宠物识别·宠物ai·宠物身份识别