https://leetcode.com/problems/queue-reconstruction-by-height/?tab=Description
人排队,int[0]表示高度,int[1]表示前面有多少个高度大于等于当前人,将之排序
高度降序、大于等于的人数升序排列,当前人的插入位置就是他的int[1]
可以考虑成先排最高的,再排第二高的,排到当前位置时高度大于等于他的就是int[1]
public class Solution {
public int[][] reconstructQueue(int[][] people) {
Arrays.sort(people, new Comparator<int[]>() {
public int compare(int[] p1, int[] p2) {
return p1[0] == p2[0] ? p1[1] - p2[1] : p2[0] - p1[0];
}
});
LinkedList<int[]> list = new LinkedList();
for (int[] p : people) {
list.add(p[1], p);
}
return list.toArray(new int[people.length][]);
}
}