LeetCode #1331. Rank Transform of an Array

题目

1331. Rank Transform of an Array


解题方法

设置一个变量temp = sorted(arr),遍历temp做一个记录每个元素rank的字典dic,再遍历arr数组,查字典写rank即可。
时间复杂度:O(nlogn),排序了
空间复杂度:O(n)


代码

class Solution:
    def arrayRankTransform(self, arr: List[int]) -> List[int]:
        dic = {}
        rank = 1
        
        temp = sorted(arr)
        
        for i in range(len(temp)):
            if temp[i] not in dic:
                dic[temp[i]] = rank
                rank += 1
        
        for i in range(len(arr)):
            arr[i] = dic[arr[i]]
        
        return arr
posted @ 2020-11-25 14:46  老鼠司令  阅读(81)  评论(0)    收藏  举报