LEETCODE | PYTHON | 1217 | 玩筹码
1. 题目
有 n 个筹码。第 i 个筹码的位置是 position[i] 。
我们需要把所有筹码移到同一个位置。在一步中,我们可以将第 i 个筹码的位置从 position[i] 改变为:
position[i] + 2 或 position[i] - 2 ,此时 cost = 0
position[i] + 1 或 position[i] - 1 ,此时 cost = 1
返回将所有筹码移动到同一位置上所需要的 最小代价 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/minimum-cost-to-move-chips-to-the-same-position
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 代码
class Solution:
def minCostToMoveChips(self, position: List[int]) -> int:
#position = [2,2,2,3,3]
#中心思想:将所有筹码根据奇偶数位置挪到1和2,选择较少的一堆再次移动
#中心思想:统计在奇数和偶数位置上的筹码个数
#结果初始化
odd = 0
even = 0
#遍历判断
for pos in position:
if pos%2:
odd = odd + 1
else:
even = even + 1
#print(odd,even)
return min(odd,even)