class Solution {
/**
* 先按照身高降序进行排序,那么排在某个元素前面的个数就是
* 身高大于等于它的个数,此时在按照第二个属性插入到第k个位置,
* 那么它的前面必然有k个大于等于它身高的人
* @param people
* @return
*/
public int[][] reconstructQueue(int[][] people) {
Arrays.sort(people, new Comparator<int[]>(){
public int compare(int[] person1, int[] person2) {
return (person1[0] != person2[0]) ? (person2[0] - person1[0]) : (person1[1] - person2[1]);
}
});
List<int[]> ans = new LinkedList<>();
for (int[] person : people)
ans.add(person[1], person);
return ans.toArray(new int[ans.size()][2]);
}
}