406. 根据身高重建队列

  1. class Solution {
  2. /**
  3. * 先按照身高降序进行排序,那么排在某个元素前面的个数就是
  4. * 身高大于等于它的个数,此时在按照第二个属性插入到第k个位置,
  5. * 那么它的前面必然有k个大于等于它身高的人
  6. * @param people
  7. * @return
  8. */
  9. public int[][] reconstructQueue(int[][] people) {
  10. Arrays.sort(people, new Comparator<int[]>(){
  11. public int compare(int[] person1, int[] person2) {
  12. return (person1[0] != person2[0]) ? (person2[0] - person1[0]) : (person1[1] - person2[1]);
  13. }
  14. });
  15. List<int[]> ans = new LinkedList<>();
  16. for (int[] person : people)
  17. ans.add(person[1], person);
  18. return ans.toArray(new int[ans.size()][2]);
  19. }
  20. }