/*
重建队列
执行用时 :11 ms, 在所有 Java 提交中击败了95.28%的用户
内存消耗 :43.5 MB, 在所有 Java 提交中击败了92.45%的用户
*/
public static int[][] reconstructQueue(int[][] people) {
if(0==people .length ||0==people[0].length)return new int [0][0];
Arrays.sort(people, new Comparator<int[]>() {//根据people[][0]降序排序;
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0];
}
});
List<int[]> list = new ArrayList<>();
for (int i=0;i<people.length;i++) {//加入链表,进行插入操作
list.add(people[i]);
}
int[] temp = new int[2];
for(int i=0;i<list.size();i++){//根据people[][1],寻找索引,插入元素
temp = list.get(i);
list.remove(i);
list.add(temp[1],temp);
}
return list.toArray(new int[list.size()][]);
}
重建队列
最新推荐文章于 2023-09-18 20:45:00 发布