美文网首页
leetcode 870 优势洗牌

leetcode 870 优势洗牌

作者: Arsenal4ever | 来源:发表于2020-01-24 22:17 被阅读0次

    这题和田忌赛马一样,但卡了我好久,难在了数据结构的设计。如果只用字典保留原来的顺序,值相同则会错误,要用字典+列表组合的方式。

    class Solution(object):
        def advantageCount(self, A, B):
            """
            :type A: List[int]
            :type B: List[int]
            :rtype: List[int]
            """
            assigned={b:[] for b in B}
            sortedB, sortedA, remaining = sorted(B),sorted(A),[]
            j = 0
            for a in sortedA:
                if a > sortedB[j]:
                    assigned[sortedB[j]].append(a)
                    j+=1
                else:
                    remaining.append(a)
            return [assigned[b].pop() if assigned[b] else remaining.pop() for b in B]
    

    相关文章

      网友评论

          本文标题:leetcode 870 优势洗牌

          本文链接:https://www.haomeiwen.com/subject/ueqhthtx.html