Golang:
思路:这题需要对数组进行排序,然后将数组内的元素的实际排位存进map里,然后对数组进行依次赋值
代码如下:
func arrayRankTransform(arr []int) []int {
if len(arr)==0{
return []int{}
}
if len(arr)==1 {
return []int{1}
}
arr2:=make([]int,len(arr))
copy(arr2,arr)
sort.Ints(arr2)
mp:=make(map[int]int)
temp:=1
for i:=1;i<len(arr2);i++{
mp[arr2[i-1]]=temp
if arr2[i]!=arr2[i-1]{
temp++
}
}
mp[arr2[len(arr)-1]]=temp
for i:=0;i<len(arr);i++{
arr2[i]=mp[arr[i]]
}
return arr2
}
有疑问加站长微信联系(非本文作者)