题目
桌上有 n
堆力扣币,每堆的数量保存在数组 coins
中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。
示例 1:
1 | 输入:[4,2,1] |
示例2:
1 | 输入:[2,3,10] |
提示:
1 <= n <= 4
1 <= coins[i] <= 10
解法
解法一:
要求求出拿光硬币的最小次数,那就意味着每次都要拿最多的2个硬币。那么奇数堆拿光的次数就是(N - 1 )/ 2 + 1 或者是(N + 1) / 2,偶数堆则是N / 2.
JAVA
1 | public int minCount(int[] coins) { |
解法二:
除2得时候不需要判断奇偶,直接在原数上加一,除以2就行,原先偶数的加一之后,除2得到的值还是原来偶数除2的值。
JAVA
1 | public int minCount(int[] coins) { |