算法
(数学) $O(1)$
我们假设一个空瓶子的价值是1
,那么一瓶酒(不包含瓶子)的价值就是 numExchange-1
。我们最初所拥有的总价值就是 numBottles * numExchange
,因为不能找别人借,所以最后我们至少会有一个空瓶子,也就是说最后我们能喝到的最大价值<= numBottles * numExchange - 1
,我们能喝到酒的数量就很容易算出来了。
Java 代码
class Solution {
public int numWaterBottles(int numBottles, int numExchange) {
return (numBottles * numExchange - 1) / (numExchange - 1);
}
}