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

浙公网安备 33010602011771号