1331 LeetCode 数组序号转换

题目描述:
LeetCode第1331题 数组序号转换
类型简单

思路:
先把数组中重复的元素除去
然后把它排序
最后再按照索引进行替换

代码如下:

class Solution {
public:
    vector<int> arrayRankTransform(vector<int>& arr) {
        vector<int>A;
        map<int,int>B;
        for(int i=0;i<arr.size();i++){
            B[arr[i]]++;
            if(B[arr[i]]==1)
            A.push_back(arr[i]);
        }
        sort(A.begin(),A.end());
        map<int,int>index;
        for(int i=0;i<A.size();i++){
            index[A[i]]=i+1;
        }
        for(int i=0;i<arr.size();i++){
            arr[i]=index[arr[i]];
        }
        return arr;
    }
};

你可能感兴趣的:(leetcode)