classSolution { publicstaticint[] arrayRankTransform(int[] arr) { //首先判断数组长度是否只有一位if(arr.length==1){ arr[0] =1; returnarr; } //数组长度>1 位,克隆该数组int[] clone=arr.clone(); //对数组进行排序Arrays.sort(clone); //创建一个map集合对象,存储下标Map<Integer, Integer>map=newHashMap<>(); //a是数组的下标,b是本次循环数组的结果inta=1,b=0; //将数组的结果以及下标存入map集合for (inti : clone) { if (i==b){ //如果有相同则直接跳出本次循环,好像有点鸡肋continue; } map.put(i,a++); b=i; } //将map中的下标存入原始数组for (inti=0; i<arr.length; i++) { arr[i] =map.get(arr[i]); } //输出查看一下for (inti : arr) { System.out.print(i+","); } returnarr; } }