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)