目录结构

1.题目

2.题解

2.1模拟

2.2公式


1.题目

小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。

如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。

请你计算 最多 能喝到多少瓶酒。

示例:

输入:numBottles = 9, numExchange = 3
输出:13
解释:你可以用 3 个空酒瓶兑换 1 瓶酒。
所以最多能喝到 9 + 3 + 1 = 13 瓶酒。

输入:numBottles = 15, numExchange = 4
输出:19
解释:你可以用 4 个空酒瓶兑换 1 瓶酒。
所以最多能喝到 15 + 3 + 1 = 19 瓶酒。
输入:numBottles = 5, numExchange = 5
输出:6输入:numBottles = 2, numExchange = 3
输出:2

提示:

  • 1 <= numBottles <= 100
  • 2 <= numExchange <= 100

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/water-bottles
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2.题解

2.1模拟

public class Solution1518 {@Testpublic void test1518() {System.out.println(numWaterBottles(17, 3));}public int numWaterBottles(int numBottles, int numExchange) {int remainder = 0, result = numBottles;while (remainder + numBottles >= numExchange) {int t = (remainder + numBottles) / numExchange;result += t;remainder = remainder + numBottles - numExchange * t;numBottles = t;}return result;}
}

2.2公式

  • 假设共换了n瓶酒,
  • 因为numExchange 个空酒瓶可以兑换一瓶新酒,换到新酒时就获得了一个空瓶,
  • 因此换一瓶酒会少numExchange -1个瓶子,故只要numBottles-n*(numExchange -1) >=numExchange就可以一直换,
  • 于是n的值为满足条件的最大值,也即(numBottles-numExchange)/(numExchange -1)+1向下取整。
public class Solution1518 {@Testpublic void test1518() {System.out.println(numWaterBottles(17, 3));}public int numWaterBottles(int numBottles, int numExchange) {return numBottles >= numExchange ? (numBottles - numExchange) / (numExchange - 1) + 1 + numBottles : numBottles;}
}
  • 时间复杂度:
  • 空间复杂度:

LeetCode 1518. 换酒问题相关推荐

  1. leetcode:1518.换酒问题

    题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/water-bottles 小区便利店正在促销,用 numExchange 个空酒瓶可以兑 ...

  2. leetcode 1518 换酒问题

    https://leetcode-cn.com/problems/water-bottles/ 题目 小区便利店正在促销,用numExchangenumExchangenumExchange个空酒瓶可 ...

  3. Leetcode 1518. 换酒问题 (经典数学问题,换汽水,从贪心思维模拟,到推公式)

    喝最多的策略就是只要满足条件,就换汽水喝) class Solution { public:int numWaterBottles(int numBottles, int numExchange) { ...

  4. 【每日一题】 1518. 换酒问题

    [每日一题] 1518. 换酒问题 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒.你购入了 numBot ...

  5. 【快乐水题】1518. 换酒问题

    原题: 力扣链接:1518. 换酒问题 题目简述: 小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒.你购入了 numBottles 瓶酒. 如果喝掉了酒瓶中的酒,那么酒瓶就会 ...

  6. 【LeetCode】1518. 换酒问题(Java)

    小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒.你购入了 numBottles 瓶酒. 如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的. 请你计算 最多 能喝到多少瓶酒. 提示: ...

  7. 2022-1-17 1518.换酒问题

    class Solution {public:int numWaterBottles(int numBottles, int numExchange) {int maxDrike = numBottl ...

  8. LeetCode之换酒问题(一千五百一十八)

    目录 题目 解题 方法一.暴力法 方法二.数学法 题目 (原题链接:https://leetcode-cn.com/problems/water-bottles/) 小区便利店正在促销,用 numEx ...

  9. LeetCode刷题进阶之换酒问题(1518)

    一.题目 演示示例: 二.测试代码 //方法一 数学 class Solution {public int numWaterBottles(int numBottles, int numExchang ...

最新文章

  1. 马上要毕业了,要就业了。。担忧啊
  2. Linux: TLB 查询流程
  3. 详解Python的*args和 **kwargs
  4. 使用javasript 遍历页面CheckBox
  5. spring-cloud学习demo,git地址
  6. NLP预训练家族 | Transformer-XL及其进化XLNet
  7. 无线电简单用语.解析
  8. 《Using Docker》书评和与作者Adrian Mouat的问答
  9. mysqll索引实验
  10. C++ 变量在内存中的分布
  11. react中使用antd按需加载(第一部)
  12. php 定时微博代码,8款主流定时微博工具
  13. 英特尔全面布局云边协同,夯实医疗云数智创新底座
  14. Windows10远程连接Windows服务器
  15. AppiumDesktop学习总结
  16. Quartus II下载器件库
  17. Uni App input 手机键盘回车搜索
  18. 电子商务要学计算机吗 难学吗,电子商务专业对数学要求高吗
  19. Windows 8 OA(OEM Activation)3.0 概述
  20. 如何利用 Azure 为 TEASOFT视频配音?

热门文章

  1. WorkPlus移动平台 | 如何建设“智慧校园”新样态?
  2. 安信可 ESP32-S3 模组上驱动摄像头 OV2640,实现远程拍照并 HTTP 传输到阿里云对象存储OSS,并显示在微信小程序上。(深度好文,全部开源)
  3. 好队友paas软件--扒一扒表单控件的用法
  4. 应用调试之使用strace命令跟踪系统调用
  5. 虚拟化——使用ovirt必备基础概念知识
  6. Hive总结(九)Hive体系结构
  7. 强推集成GPT-4的编辑器Cursor;面向ChatGPT编程18种方法;如何将AI绘画融合于工作流;ChatGPT SEO公式大揭秘 | ShowMeAI日报
  8. vue 通过路由导航守卫控制访问权限
  9. 国家测绘局:严禁擅自公布重要地理信息数据
  10. 来自一枚rookie的项目开发——Nginx Centos 8 or 7 下载安装