1331 陣列序號轉換

2021-10-02 11:13:04 字數 1033 閱讀 2007

給你乙個整數陣列 arr ,請你將陣列中的每個元素替換為它們排序後的序號。

序號代表了乙個元素有多大。序號編號的規則如下:

序號從 1 開始編號。

乙個元素越大,那麼序號越大。如果兩個元素相等,那麼它們的序號相同。

每個數字的序號都應該盡可能地小。

示例 1:

輸入:arr = [40,10,20,30]

輸出:[4,1,2,3]

解釋:40 是最大的元素。 10 是最小的元素。 20 是第二小的數字。 30 是第三小的數字。

class solution(object):

def arrayranktransform(self, arr):

""":type arr: list[int]

:rtype: list[int]

"""tmp = sorted(arr)

dic = {}

res = [0 for i in range(len(arr))]

count = 0

for i in range(len(tmp)):

if tmp[i] not in dic:

count += 1

dic[tmp[i]] = count

for i in range(len(arr)):

res[i] = dic[arr[i]]

return res

class solution(object):

def arrayranktransform(self, arr):

""":type arr: list[int]

:rtype: list[int]

"""hashmap={}

l=sorted(list(set(arr)))

for i,element in enumerate(l):

hashmap[element]=i+1

return [hashmap[i] for i in arr]

1331 陣列序號轉換

題目描述 給你乙個整數陣列 arr 請你將陣列中的每個元素替換為它們排序後的序號。序號代表了乙個元素有多大。序號編號的規則如下 序號從 1 開始編號。乙個元素越大,那麼序號越大。如果兩個元素相等,那麼它們的序號相同。每個數字的序號都應該盡可能地小。示例 1 輸入 arr 40,10,20,30 輸出...

1331 陣列序號轉換

給你乙個整數陣列 arr 請你將陣列中的每個元素替換為它們排序後的序號。序號代表了乙個元素有多大。序號編號的規則如下 序號從 1 開始編號。乙個元素越大,那麼序號越大。如果兩個元素相等,那麼它們的序號相同。每個數字的序號都應該盡可能地小。示例 1 輸入 arr 40,10,20,30 輸出 4,1,...

1331 陣列序號轉換

1331.陣列序號轉換 給你乙個整數陣列arr,請你將陣列中的每個元素替換為它們排序後的序號。序號代表了乙個元素有多大。序號編號的規則如下 示例 1 輸入 arr 40,10,20,30 輸出 4,1,2,3 解釋 40 是最大的元素。10 是最小的元素。20 是第二小的數字。30 是第三小的數字。...