原题链接:Leecode 1217. 玩筹码
开始自己写了一个暴力,后来看题解才知道,原来这道题只用统计奇数偶数个数就可以了!
position[i] + 2 或 position[i] - 2 ,此时 cost = 0
position[i] + 1 或 position[i] - 1 ,此时 cost = 1
这段话的意思其实就是,如果奇数到奇数无代价,偶数到偶数无代价,但奇数到偶数(或反过来)有代价1,有意思!
class Solution {
public:
int minCostToMoveChips(vector<int>& position) {
int n1=0,n2=0;
int m=position.size();
for(int i=0;i<m;i++)
{
if(position[i]&1)//奇数
n1++; //如果定位为偶数位,则奇数位到它就+1
else //偶数
n2++; //如果定位为奇数位,则偶数位到它就+1
}
return min(n1,n2);
}
};