Q:
You are given an array of people, people
, which are the attributes of some people in a queue (not necessarily in order). Each people[i] = [hi, ki]
represents the ith
person of height hi
with exactly ki
other people in front who have a height greater than or equal to hi
.
Reconstruct and return the queue that is represented by the input array people
. The returned queue should be formatted as an array queue
, where queue[j] = [hj, kj]
is the attributes of the jth
person in the queue (queue[0]
is the person at the front of the queue).
Input:
1 | Input: people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]] |
S:
A person has 2 attributes , h stands for height, and the person with the same height should be behind the person with k greater. In order to determine where should go, we can consider ranking the heights backwards so that the number of people taller than him in front is known. Suppose some queue goes to , for the people who have been inserted in front of him, the heights are ≥ him, so when he is inserted in the ith position, it has no effect on the others (because when the heights are the same,i will be sorted in positive order)
1 | class Solution { |