题目🎊
桌上有
n
堆力扣币,每堆的数量保存在数组coins
中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。
❤ 这个问题实际上是一个贪心算法的应用。给定的问题可以这样理解:你面前有若干堆硬币,每堆有不同数量的硬币,你的任务是用最少的次数拿完所有的硬币。规则是每次可以从任意一堆中拿走1枚或者2枚硬币。
☎题解:
class Count{
public int minCount(int[] coins) {
int sum = 0;
for (int i : coins) {
sum += (i + 1) / 2;
}
return sum;
}
}
Count类中的minCount
方法就是用来解决这个问题的。下面是这个方法的逻辑分析:
首先,方法接收一个整数数组
coins
作为参数