注意根据身高hi由高到低进行排序时,会有身高相等的情况,但是其ki一定不同,又因为每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人,所以排序时当两个身高相同,还要根据ki由小到大进行排序,保证前面的元素先插入到List中(不会影响未插入身高的队列)
代码
classSolution{publicint[][]reconstructQueue(int[][] people){Arrays.sort(people,newComparator<int[]>(){publicintcompare(int[] people1,int[] people2){if(people1[0]!= people2[0]){return people2[0]- people1[0];}return people1[1]- people2[1];}});List<int[]> res =newArrayList<>(people.length);for(int[] person : people){
res.add(person[1], person);}return res.toArray(newint[people.length][2]);}}