Rank Transform of an Array
给一个arr, 求一个数组, 数组里的数字是arr的rank. 这个题就用treeset做. 用map存一下.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class Solution { public int[] arrayRankTransform(int[] arr) { TreeSet<Integer> set = new TreeSet<>(); for(int n : arr) set.add(n); Map<Integer, Integer> map = new HashMap<>(); int rank = 1; for(int n : set) map.put(n, rank++); int[] res = new int[arr.length]; for(int i = 0; i < arr.length; i++) { res[i] = map.get(arr[i]); } return res; } } |