LeetCode(1331)数组序号转换

利用unordered_map<int,int>hashmap可以将查找的时间缩小至O(1)

class Solution {
public:
    vector<int> arrayRankTransform(vector<int>& arr) {
        int n = arr.size(),MIN,MINP,serial = 1,count = 1;
        vector<int>v(n);
        if(n==0)return v;
        v = arr;
        unordered_map<int,int>hashmap;
        sort(arr.begin(),arr.end());
        for(int i=0;i<n;i++){
            if(i>0&&arr[i]!=arr[i-1])count++;
            hashmap[arr[i]] = count;
        }
        for(int i=0;i<n;i++){
            v[i] = hashmap[v[i]];
        }
        return v;
    }
};

 

posted @ 2022-05-13 09:04  智人心  阅读(17)  评论(0)    收藏  举报