美文网首页
leetcode 1128. 等价多米诺骨牌对的数量

leetcode 1128. 等价多米诺骨牌对的数量

作者: fanchuang | 来源:发表于2020-03-17 09:12 被阅读0次
    class Solution:
        def numEquivDominoPairs(self, dominoes: List[List[int]]) -> int:
            # 会不会出现这样的牌  [4,6] [5, 7]   假设不会出现。怎么做呢?
            # 事实上 是会出现的 测试用例第8 / 19 个  [9,6],[1,3],[9,7],[4,7],
          
            # 下面这句才是最有意思的。
            dominoes.sort(key=lambda x: (sum(x), min(x)))
    
            ret = 0
            flag = False    # 表示的是连续找到相等的。
            accu = 2
            for i in range(len(dominoes)-1):
                # 这里面有一个问题 就是累加性。。。3个连续成立的,最终可以组成3对,而不是2对。
                if dominoes[i] == dominoes[i+1] or dominoes[i] == dominoes[i+1][::-1]:
                    if flag:
                        ret += accu
                        accu += 1
                    else:
                        ret += 1
                        flag = True
                        accu = 2
                    # print("find one: ", dominoes[i], dominoes[i + 1])
                else:
                    flag = False
                    accu = 0
            return ret 
    

    相关文章

      网友评论

          本文标题:leetcode 1128. 等价多米诺骨牌对的数量

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