题目描述：

LeetCode 406. Queue Reconstruction by Height

Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers (h, k), where h is the height of the person and k is the number of people in front of this person who have a height greater than or equal to h. Write an algorithm to reconstruct the queue.

Note:
The number of people is less than 1,100.

Example

Input:
[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]

Output:
[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]

Java代码：

public class Solution {
public int[][] reconstructQueue(int[][] people) {
int size = people.length;
for (int i = 0; i < size; i++) {
list.add(new int[]{people[i], people[i], 0});
}
int ans[][] = new int[size][];
for (int i = 0; i < size; i++) {
Collections.sort(list, new Comparator<int[]>() {
public int compare (int[] a, int[] b) {
if (a == b)
return a - b;
return a - b;
}
});
int[] head = list.removeFirst();
for (int[] p : list) {
if (p <= head) {
p -= 1;
p += 1;
}
}
}
return ans;
}
}

Pingbacks已关闭。