3100. Water Bottles II

Leetcode link

题目简介

本题时 Water Battles 的变形,题目还是给我们两个参数:numBottles, numExchange 分别代表一开始有多少个装满水的瓶子以及多少个空瓶子能换一瓶水

但是本题加了两个条件:

  1. 每次用空瓶子换水最多只能换一瓶水
  2. numExchange 的数量会随着交换水的次数增加,每次加一

解题思路

虽然条件修改了,但是我们还是一样用循环来模拟题目

比较容易混淆的是代码第 10 行,我们需要对 numExchange - 1,因为每次 exchange 都会换回来一个装满水的新瓶子,所以变相的,我们每次交换瓶子其实只需要 numExchange - 1 个空瓶子就好

Javascript:O(n^(1/2))

/**
 * @param {number} numBottles
 * @param {number} numExchange
 * @return {number}
 */
var maxBottlesDrunk = function (numBottles, numExchange) {
    let res = numBottles
    let emptyBottle = numBottles
    while (emptyBottle >= numExchange) {
        emptyBottle -= numExchange - 1
        numExchange++
        res++
    }
    return res
};

results matching ""

    No results matching ""