leetcode LCP 06. 拿硬币--Java、Python以及Scala语言的实现

问题描述

  • 桌上有 n 堆力扣币,每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆,拿走其中的一枚或者两枚,求拿完所有力扣币的最少次数。
  • 输入:[4,2,1]
  • 输出:4

解题思路

  • 首先定义一个结果变量res。接着循环遍历coins,coins中的每个数除以2(浮点数除法,向上取整)的值加到res上。

Java 代码

    public int minCount(int[] coins) {
        int res = 0; // 初始化结果变量
        for(int i : coins){ // 循环遍历coins数组
            res += (int)Math.ceil(i/2.0); // 除以2然后向上取整
        }
        return res; // 返回结果变量
    }

Python 代码

def minCount(coins):
    res = 0 # 初始化结果变量
    for i in coins: # 遍历coins数组
        res += math.ceil(i/2) # 除以2向上取整
    return res # 返回结果变量

Scala 代码

  def minCount(coins: Array[Int]):Int = {
    var res:Int = 0; // 初始化结果变量
    for(i <- coins){ // 变量coins数组
       res += (Math.ceil(i/2.0).toInt) // 除以2向上取整
    }
    res // 返回结果变量
  }

你可能感兴趣的:(leetcode问题解决,算法)