题目大意
https://leetcode.com/problems/queue-reconstruction-by-height/
给了你n个pair,pair的一个值是人的高度,第二个是在当前位置前边身高不小于当前的人的个数,让你恢复这个pair数组,保证正确性
题目分析
贪心法,看了下discuss区的解答,思路是这样的:先将pair排序,规则是first值大者在前,如果first相同,那么second值小的在前,然后重新构建数组,可以借助一个辅助的数组理解思路,每次从原数组中拿出一个pair,将它插入到辅助数组中的pair.second的位置,不断拿出一直到最后。
第二种思路,不借助辅助数组,就是会需要不断手动移动元素保持数组。
代码
第一种思路
|
|
时间复杂度 O(n ^ 2)
第二种思路
|
|
时间复杂度 O(n ^ 2)