LCP 06. 拿硬币
桌上有
n堆力扣币,每堆的数量保存在数组coins中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。
-
思路
拿完某堆硬币需要的最少次数为 c e i l ( c o i n / 2 ) ceil(coin/2) ceil(coin/2),累加求和返回最终结果
-
实现
class Solution { public int minCount(int[] coins) { int res = 0; for (int coin : coins){ res += coin / 2 + coin % 2; } return res; } }- 复杂度
- 时间复杂度: O ( n ) \mathcal{O}(n) O(n)
- 空间复杂度: O ( 1 ) \mathcal{O}(1) O(1)
- 复杂度

文章讨论了如何在一个包含n堆力扣币的数组中,通过每次取一枚或两枚的方式,计算拿完所有硬币所需的最少操作次数。给出了一种解决方案,利用线性时间复杂度O(n)和常数空间复杂度O(1)实现。

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



