身高从高到低考虑
- 根据第一维数据(身高)从大到小排序
- 再根据第二维数据(数)从小到大排序
准备一个动态数组,根据排完序后的,从左往右遍历,把它们插在它们对于二维数据的位置上,


- 原理
- 当你在往动态数组里面插东西的时候,是不会影响数组里面已经合规的东西的,(因为现在数组里面的东西身高都比你高或等于, 你插入进去不会影响它们的指标)
- 之前插入的东西的高度都是≥你的高度的,然后你把你插在i位置,你也达标 (你的第二维数据就是 i )
public int[][] reconstructQueue(int[][] people) {Arrays.sort(people, new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {return o1[0] != o2[0] ? o2[0] - o1[0] : o1[1] - o2[1];}});List<int[]> list = new ArrayList<>();for (int i = 0; i < people.length; i++) {list.add(people[i][1], people[i]);}int index = 0;for (int i = 0; i < people.length; i++) {people[i] = list.get(i);}return people;}
