解题思路:
本质上是统计偶数位上的筹码和奇数位上的筹码和,然后进行比较,因为偶数位和奇数位上的筹码各自转换是不需要cost的,那么就可以理解为最后所有奇数位筹码在一个奇数位上,所有偶数位筹码在一个偶数位上,然后少的放入大的上面,这就是最小的cost,代码如下:
class Solution {
public:
int minCostToMoveChips(vector<int>& position) {
int count1 = 0;
int count2 = 0;
for(int i = 0; i < position.size(); i ++) {
if(position[i] % 2 == 0) {
count1 += 1;
} else {
count2 += 1;
}
}
return min(count1, count2);
}
};