题目
排序,用map记录rank值
class Solution {
public int[] arrayRankTransform(int[] arr) {
if(arr.length==0) return arr;
int[] tmp = arr.clone();
Arrays.sort(tmp);
HashMap<Integer,Integer> map = new HashMap<>();
int rank = 1;
for(int i=0;i<tmp.length-1;i++){
if(tmp[i]==tmp[i+1]){
map.put(tmp[i],rank);
}else{
map.put(tmp[i],rank);
rank++;
}
}
map.put(tmp[tmp.length-1],rank);
for(int i=0;i<arr.length;i++){
arr[i] = map.get(arr[i]);
}
return arr;
}
}