当前位置: 首页 > news >正文

做sgs认证的公司网站浪琴女士手表网站

做sgs认证的公司网站,浪琴女士手表网站,西宁市网站建设公司推荐,优秀学习网站LeetCode 第365题#xff1a;水壶问题 #x1f4d6; 文章摘要 本文详细解析LeetCode第365题水壶问题#xff0c;这是一道数学和广度优先搜索问题。文章提供了基于数学和BFS的两种解法#xff0c;包含C#、Python、C三种语言实现#xff0c;配有详细的算法分析…LeetCode 第365题水壶问题 文章摘要 本文详细解析LeetCode第365题水壶问题这是一道数学和广度优先搜索问题。文章提供了基于数学和BFS的两种解法包含C#、Python、C三种语言实现配有详细的算法分析和性能对比。适合想要提升数学思维和搜索算法的读者。 核心知识点 数学、广度优先搜索、最大公约数、状态搜索 难度等级 中等 推荐人群 具有基础算法知识想要提升数学思维的程序员 题目描述 有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶从而可以得到恰好 z升 的水 如果可以最后请用以上水壶中的一或两个来盛放取得的 z升 水。 你允许 装满任意一个水壶清空任意一个水壶从一个水壶向另外一个水壶倒水直到装满或者倒空 示例 示例 1 输入x 3, y 5, z 4 输出True 解释我们可以先装满5升的水壶然后倒3升到3升的水壶中此时5升水壶中剩余2升水。然后倒空3升水壶将5升水壶中的2升水倒入3升水壶中。最后装满5升水壶此时5升水壶中有5升水3升水壶中有2升水总共7升水。然后从5升水壶中倒出1升水到3升水壶中此时5升水壶中有4升水3升水壶中有3升水总共7升水。所以我们可以得到4升水。示例 2 输入x 2, y 6, z 5 输出False 解释我们无法得到5升水。提示 0 x 10^60 y 10^60 z 10^6 解题思路 本题可以使用数学或BFS解决 数学解法 使用贝祖定理判断z是否能被x和y的最大公约数整除 BFS解法 使用队列进行状态搜索记录已访问的状态枚举所有可能的操作 时间复杂度 数学解法O(log(min(x,y)))BFS解法O(xy) 空间复杂度 数学解法O(1)BFS解法O(xy) 算法流程演示 图解思路 数学解法 步骤操作说明1计算gcd(x,y)使用辗转相除法2判断z%gcd0判断是否有解3判断zxy判断是否可行 BFS状态转移 状态操作新状态(a,b)装满x(x,b)(a,b)装满y(a,y)(a,b)倒空x(0,b)(a,b)倒空y(a,0)(a,b)x倒入y(max(0,ab-y),min(y,ab))(a,b)y倒入x(min(x,ab),max(0,ab-x)) 代码实现 C# 实现 public class Solution {public bool CanMeasureWater(int x, int y, int z) {if (z 0) return true;if (x y z) return false;return z % GCD(x, y) 0;}private int GCD(int a, int b) {while (b ! 0) {int temp b;b a % b;a temp;}return a;} }Python 实现 class Solution:def canMeasureWater(self, x: int, y: int, z: int) - bool:if z 0:return Trueif x y z:return Falsedef gcd(a, b):while b:a, b b, a % breturn areturn z % gcd(x, y) 0C 实现 class Solution { public:bool canMeasureWater(int x, int y, int z) {if (z 0) return true;if (x y z) return false;return z % gcd(x, y) 0;}private:int gcd(int a, int b) {while (b) {int temp b;b a % b;a temp;}return a;} };执行结果 C# 实现 执行用时36 ms内存消耗14.8 MB Python 实现 执行用时28 ms内存消耗13.2 MB C 实现 执行用时0 ms内存消耗5.9 MB 性能对比 语言执行用时内存消耗特点C0 ms5.9 MB执行效率最高内存占用最小Python28 ms13.2 MB代码简洁内存占用适中C#36 ms14.8 MB类型安全内存占用较大 代码亮点 使用数学方法优雅解决 处理边界情况和特殊情况 使用辗转相除法计算最大公约数 代码结构清晰易于维护 常见错误分析 未处理z0的情况 未处理xyz的情况 最大公约数计算错误 整数溢出 解法对比 解法时间复杂度空间复杂度优点缺点数学解法O(log(min(x,y)))O(1)高效实现简单需要数学知识BFS解法O(xy)O(xy)直观易于理解效率较低 相关题目 LeetCode 365. 水壶问题 - 中等LeetCode 279. 完全平方数 - 中等LeetCode 322. 零钱兑换 - 中等 系列导航 算法专题合集 - 查看完整合集 关注合集更新点击上方合集链接关注获取最新题解目前已更新第365题。 互动交流 感谢大家耐心阅读到这里希望这篇题解能够帮助你更好地理解和掌握这道算法题。 如果这篇文章对你有帮助请 点个赞让更多人看到这篇文章 收藏文章方便后续查阅复习 关注作者获取更多高质量算法题解 评论区留言分享你的解题思路或提出疑问 你的支持是我持续分享的动力 一起进步算法学习路上不孤单欢迎一起交流学习 互动交流 感谢大家耐心阅读到这里希望这篇题解能够帮助你更好地理解和掌握这道算法题。 如果这篇文章对你有帮助请 点个赞让更多人看到这篇文章 收藏文章方便后续查阅复习 关注作者获取更多高质量算法题解 评论区留言分享你的解题思路或提出疑问 你的支持是我持续分享的动力 一起进步算法学习路上不孤单欢迎一起交流学习
http://www.zqtcl.cn/news/255756/

相关文章:

  • 九亭镇村镇建设办官方网站好看的网站设计公司
  • 怎样建立门户网站怎么用wordpress模板
  • 潍坊专业建站wordpress建个人博客
  • 手把手网站开发网站建设违法行为
  • 网站模板插件做网站要审批吗
  • 建立网站如何盈利有哪些做室内设计好用的网站有哪些
  • 商城网站设计服务商网站开发时的闭包写法
  • 福建永安建设局网站如何在百度免费发布广告
  • 网站建设要用到哪些应用工具国际新闻最新消息今天2024年
  • 网站代码怎么打开门户网站建设目的
  • 个人网站开发项目总结做网站模板的网页名称是m开头
  • 响水哪家专业做网站win wordpress
  • 做图标去什么网站找微网页制作软件手机版
  • 网站开发源程序网页宣传方案
  • 做婚礼设计在哪个网站下载素材西安企业网站建设
  • 灵犀科技网站开发佼佼者门户网站建设和检务公开整改
  • php mysql做网站登录免费素材哪里找
  • 休闲食品网站建设网页设计网站实例
  • 微信网站结构58同城北京网站建设
  • thinkcmf做网站快不快南宁网站建设找哪家好
  • 百度网站类型西部数码官网
  • app和网站哪个难做如何做本地网站
  • 怎么做网站导航栏个性化定制产品
  • 如何做企业网站排名优化工业设计公司logo
  • 怎样制作网站教程中国建设银行总部网站
  • 美食网站建设规划书辽宁建设工程信息网中标通知
  • iis搭建网站教程深圳注册公司条件
  • 怎么优化网站关键词排名api接口开发网站开发
  • 如何提升网站的搜索排名秦皇岛黄页大全秦皇岛本地信息网
  • 学生作业网站笔记本可以做网站吗