【每日一题Day332】LCP 06. 拿硬币 | 模拟

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)

你可能感兴趣的:(每日一题,模拟,leetcode)