LeetCode 1518. 换酒问题
目录结构
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. 换酒问题相关推荐
- leetcode:1518.换酒问题
题目 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/water-bottles 小区便利店正在促销,用 numExchange 个空酒瓶可以兑 ...
- leetcode 1518 换酒问题
https://leetcode-cn.com/problems/water-bottles/ 题目 小区便利店正在促销,用numExchangenumExchangenumExchange个空酒瓶可 ...
- Leetcode 1518. 换酒问题 (经典数学问题,换汽水,从贪心思维模拟,到推公式)
喝最多的策略就是只要满足条件,就换汽水喝) class Solution { public:int numWaterBottles(int numBottles, int numExchange) { ...
- 【每日一题】 1518. 换酒问题
[每日一题] 1518. 换酒问题 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒.你购入了 numBot ...
- 【快乐水题】1518. 换酒问题
原题: 力扣链接:1518. 换酒问题 题目简述: 小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒.你购入了 numBottles 瓶酒. 如果喝掉了酒瓶中的酒,那么酒瓶就会 ...
- 【LeetCode】1518. 换酒问题(Java)
小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒.你购入了 numBottles 瓶酒. 如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的. 请你计算 最多 能喝到多少瓶酒. 提示: ...
- 2022-1-17 1518.换酒问题
class Solution {public:int numWaterBottles(int numBottles, int numExchange) {int maxDrike = numBottl ...
- LeetCode之换酒问题(一千五百一十八)
目录 题目 解题 方法一.暴力法 方法二.数学法 题目 (原题链接:https://leetcode-cn.com/problems/water-bottles/) 小区便利店正在促销,用 numEx ...
- LeetCode刷题进阶之换酒问题(1518)
一.题目 演示示例: 二.测试代码 //方法一 数学 class Solution {public int numWaterBottles(int numBottles, int numExchang ...
最新文章
- 马上要毕业了,要就业了。。担忧啊
- Linux: TLB 查询流程
- 详解Python的*args和 **kwargs
- 使用javasript 遍历页面CheckBox
- spring-cloud学习demo,git地址
- NLP预训练家族 | Transformer-XL及其进化XLNet
- 无线电简单用语.解析
- 《Using Docker》书评和与作者Adrian Mouat的问答
- mysqll索引实验
- C++ 变量在内存中的分布
- react中使用antd按需加载(第一部)
- php 定时微博代码,8款主流定时微博工具
- 英特尔全面布局云边协同,夯实医疗云数智创新底座
- Windows10远程连接Windows服务器
- AppiumDesktop学习总结
- Quartus II下载器件库
- Uni App input 手机键盘回车搜索
- 电子商务要学计算机吗 难学吗,电子商务专业对数学要求高吗
- Windows 8 OA(OEM Activation)3.0 概述
- 如何利用 Azure 为 TEASOFT视频配音?
热门文章
- WorkPlus移动平台 | 如何建设“智慧校园”新样态?
- 安信可 ESP32-S3 模组上驱动摄像头 OV2640,实现远程拍照并 HTTP 传输到阿里云对象存储OSS,并显示在微信小程序上。(深度好文,全部开源)
- 好队友paas软件--扒一扒表单控件的用法
- 应用调试之使用strace命令跟踪系统调用
- 虚拟化——使用ovirt必备基础概念知识
- Hive总结(九)Hive体系结构
- 强推集成GPT-4的编辑器Cursor;面向ChatGPT编程18种方法;如何将AI绘画融合于工作流;ChatGPT SEO公式大揭秘 | ShowMeAI日报
- vue 通过路由导航守卫控制访问权限
- 国家测绘局:严禁擅自公布重要地理信息数据
- 来自一枚rookie的项目开发——Nginx Centos 8 or 7 下载安装