leetcode-157周赛-5213-玩筹码

题目描述:

 

 自己的提交:

class Solution:
    def minCostToMoveChips(self, chips: List[int]) -> int:
        res = float('inf')
        nums = set(chips)
        for num in nums:
            ans = 0
            for i in chips:
                ans += (i - num)%2
            res = min(res,ans)
        return res

方法二:只要统计奇数位的筹码数和偶数位的筹码数,将少的一方移到多的一方即可。

class Solution:
    def minCostToMoveChips(self, chips: List[int]) -> int:
        odd = 0
        even = 0
        
        for chip in chips:
            if chip % 2 == 0:
                even += 1
            else:
                odd += 1
        
        return min(odd, even)

 优化:

class Solution(object):
    def minCostToMoveChips(self, A):
        c = [0, 0]
        for x in A:
            x %=2
            c[x] += 1
        return min(c)

 

posted @ 2019-10-07 09:35  oldby  阅读(163)  评论(0编辑  收藏  举报