1518. Water Bottles

Leetcode link

题目简介

题目给我们两个参数:

  • numBottles:代表初始状态下有几瓶装满水的瓶子
  • numExchange:代表几个空瓶子可以换一个装满水的瓶子

题目要求我们在给定的参数下,求得我们最后最多能喝几瓶水

解题思路

题目要求我们能喝几瓶水,所以我们只需要关注我们一开始有几瓶水 + 我们能换几瓶水就好

在每一轮喝完水之后,我们最多能换:拥有空瓶子的数量 / numExchange 取整数部份的瓶子

其中拥有空瓶子的数量 = 上一轮 numBottles / numExchange 取整数部份 + 上一轮 numBottles % numExchange

我们就这样一轮一轮的喝下去,直到拥有空瓶子的数量 < numExchange 为止

Javascript

/**
 * @param {number} numBottles
 * @param {number} numExchange
 * @return {number}
 */
var numWaterBottles = function (numBottles, numExchange) {
    let res = numBottles
    while (numBottles >= numExchange) {
        const remains = numBottles % numExchange
        const newBottle = Math.floor(numBottles / numExchange)
        res += newBottle
        numBottles = newBottle + remains
    }
    return res
};

results matching ""

    No results matching ""