451.Queue Reconstruction by Height (Medium)

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]]
题意:对于给定的(h, k)进行排序,其中h是人的身高,k是在当前升高为h的之前的人,且身高大于等于h;
思路:先按照h逆序排列,当h相同时,对k升序排列;
class Solution:
    def reconstructQueue(self, people):
        """
        :type people: List[List[int]]
        :rtype: List[List[int]]
        """

        def key_sort(people):
            return -people[0], people[1]

        people.sort(key=key_sort)
        ans = []
        for i in people:
            ans.insert(i[1], i)

        return ans

注意:利用函数key_sort()中返回负h和正k,来实现降序和升序;

?
时间: 2024-11-10 07:40:39

451.Queue Reconstruction by Height (Medium)的相关文章

sort学习 - LeetCode #406 Queue Reconstruction by Height

用python实现多级排序,可以像C语言那样写个my_cmp,然后在sort的时候赋给参数cmp即可 但实际上,python处理cmp 是很慢的,因为每次比较都会调用my_cmp:而使用key和reverse就快得多,因为只需要在排序开始时处理一次即可,因此在排序的时候能不用cmp就尽量不用 另外可以用operator函数中的itemgetter,和attrgetter实现基于key的(多级)排序: from operator import itemgetter, attrgetter sort

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 

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

[LeetCode] 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

LeetCode Queue Reconstruction by Height

原题链接在这里:https://leetcode.com/problems/queue-reconstruction-by-height/description/ 题目: 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 th

406 Queue Reconstruction by Height 根据身高重建队列

假设有打乱顺序的一群人站成一个队列. 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数. 编写一个算法来重建这个队列.注意:总人数少于1100人.示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]] 详见:https://leetcode.com/problems/queue-reconstruction-by-h

[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

LeetCode Problems List 题目汇总

No. Title Level Rate 1 Two Sum Medium 17.70% 2 Add Two Numbers Medium 21.10% 3 Longest Substring Without Repeating Characters Medium 20.60% 4 Median of Two Sorted Arrays Hard 17.40% 5 Longest Palindromic Substring Medium 20.70% 6 ZigZag Conversion Ea

Leetcode题解——算法思想之贪心思想

1. 分配饼干 2. 不重叠的区间个数 3. 投飞镖刺破气球 4. 根据身高和序号重组队列 5. 买卖股票最大的收益 6. 买卖股票的最大收益 II 7. 种植花朵 8. 判断是否为子序列 9. 修改一个数成为非递减数组 10. 子数组最大的和 11. 分隔字符串使同种字符出现在一起 保证每次操作都是局部最优的,并且最后得到的结果是全局最优的. 1. 分配饼干 455. Assign Cookies (Easy) Input: [1,2], [1,2,3] Output: 2 Explanati