第一二一七_玩筹码
数轴上放置了一些筹码,每个筹码的位置存在数组 chips 当中。
你可以对 任何筹码 执行下面两种操作之一(不限操作次数,0 次也可以):
将第 i 个筹码向左或者右移动 2 个单位,代价为 0。
将第 i 个筹码向左或者右移动 1 个单位,代价为 1。
最开始的时候,同一位置上也可能放着两个或者更多的筹码。
返回将所有筹码移动到同一位置(任意位置)上所需要的最小代价。
思路:移动偶数步的代价为零,所以偶数移动到偶数位置代价为零,奇数移动到奇数位置代价为零,那么最终的代价坑定就是看是奇数少还是偶数少,偶数少就移动偶数,奇数少就移动奇数.
public class 第一二一七_玩筹码 {
public static int minCostToMoveChips(int[] position) {
//a 是偶数的个数, b 是奇数的个数
int a = 0;
int b = 0;
for (int i : position) {
if(i % 2 == 0){
a++;
}else{
b++;
}
}
return a>b?b:a;
}
public static void main(String[] args) {
int[] arr = new int[]{1,2,3};
int i = minCostToMoveChips(arr);
System.out.println(i);
}
}


浙公网安备 33010602011771号