思路:
按身高降序排序,按k值升序排序;
顺序遍历,将people元素插入(用LinkedList.add(int index, int element))people[ ][1]对应的位置处;
class Solution {
public int[][] reconstructQueue(int[][] people) {
Arrays.sort(people,new Comparator<int[]>(){
public int compare(int[] a,int[] b){
//按身高降序,k值升序排序
return a[0]==b[0]?a[1]-b[1]:b[0]-a[0];
}
});
List<int[]> res = new LinkedList<>();`在这里插入代码片`
for(int[] person : people){
res.add(person[1],person);
}
int n = people.length;
return res.toArray(new int[n][2]);
}
}
注意两个语法:
List<int[]> res = new LinkedList<>();
res.add(person[1],person);