package leetcode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class demo_406 {
public int[][] reconstructQueue(int[][] people) {
//先按照数组中第一位第一位降序排序,再按照数组中第二位升序排序
Arrays.sort(people,new Comparator<int[]>() {
public int compare(int[] person1,int[] person2) {
if(person1[0]!=person2[0]) {
return person2[0]-person1[0];
}else {
return person1[1]-person2[1];
}
}
});
ArrayList<int[]>list=new ArrayList<int[]>(people.length);
//插空法,使得插入的当前位置前面恰好有num[i]个人
for(int[] num:people) {
list.add(num[1], num);
}
return list.toArray(new int[people.length][]);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
demo_406 demo=new demo_406();
int[][] people= {{7,0},{4,4},{7,1},{5,0},{6,1},{5,2}};
demo.reconstructQueue(people);
}
}