这个题目有点绕,没看懂,看来题解之后才知道什么意思。
需要注意数组,数组记录的是下标所在的个数吗,而不是数组的下标,比如【2,2,2,3,4,5,5】
就是说,在第二堆有三个数,第3,4堆只有一个数,第5堆有两个数。
又因为从偶数移动到偶数,奇数移动到奇数,他的代价是0,所以其实计算的就是奇数在的数多还是偶数在的数多,返回数少的就行。
class Solution {
public int minCostToMoveChips(int[] position) {
int even = 0, odd = 0;
for (int pos : position){
if (pos % 2 == 0){
even++;
} else {
odd++;
}
}
return even > odd ? odd : even;
}
}

这篇博客探讨了如何计算在给定数组中,奇数位置上的芯片数与偶数位置上的芯片数之差,以确定最少移动次数。通过Solution类的minCostToMoveChips方法,解决奇偶数分布不平衡问题以达到平衡状态。
623

被折叠的 条评论
为什么被折叠?



