拿硬币
1. 问题
- 桌上有
n
堆力扣币,每堆的数量保存在数组coins
中。我们每次可以选择任意一堆, - 拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。
- 例如:
[4,2,1] => 4
[2,3,10] => 8
- 例如:
- 思路也很简单
- 当某堆硬币数
coin
是偶数时,拿取次数最少为coin/2
次; - 当某堆硬币数
coin
是奇数时,拿取次数最少为coin/2 + 1
次;
- 当某堆硬币数
1 | if(coin % 2 == 0) |
2. 解决方法
2.1 reduce
1 | const coins = [2,3,10]; |
2.2 位运算
1 | const coins = [2,3,10] |
3. 题源
- LCP 06. 拿硬币(https://leetcode-cn.com/problems/na-ying-bi/)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LiuYuanhua!
评论