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

LeetCode Hot 100 - 盛水最多的容器解题思路详解

LeetCode Hot 100 - 盛水最多的容器解题思路详解

题目描述

给你 n 个非负整数 a1, a2, ..., an,每个数代表坐标中的一个点 (i, ai)。在坐标内画 n 条垂直线,第 i 条线的两个端点是 (i, ai) 和 (i, 0)。找出其中两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

说明:你不能倾斜容器,且 n ≥ 2。

示例

输入: [1,8,6,2,5,4,8,3,7] 输出: 49

解题思路

这是一个经典的双指针问题。我们使用两个指针lr分别指向数组的首尾,计算当前两个柱子所能形成的面积,并不断移动较短的一边,以期望找到更大的面积。

核心思想
  • 容器的面积由两个因素决定:

    • 两根柱子之间的距离(宽):(r - l)
    • 较矮柱子的高度(高):Math.min(nums[l], nums[r])

    所以面积为:

    area = Math.min(nums[l], nums[r]) * (r - l)
  • 为什么移动较短的柱子?

    因为面积受限于较矮的柱子。如果我们固定较矮的柱子而移动较高的柱子,宽度减小,高度不会增加(仍受制于较矮柱子),所以面积只会变小或不变。因此,只有移动较矮的柱子,才有可能在后续中找到更高的柱子,从而获得更大的面积。

Java代码实现

class Solution { public int maxArea(int[] nums) { int l = 0, r = nums.length - 1; int ans = 0; while (l < r) { int area = Math.min(nums[l], nums[r]) * (r - l); ans = Math.max(area, ans); if (nums[l] < nums[r]) { l++; } else { r--; } } return ans; } }

算法复杂度分析

  • 时间复杂度:O(n),每个元素最多被访问一次。
  • 空间复杂度:O(1),只使用了常数级别的额外空间。

总结

本题通过双指针技巧将暴力解法 O(n²) 优化到 O(n),关键在于理解“移动较短边才可能获得更大面积”这一贪心策略。这是 LeetCode Hot 100 中非常经典的一道题,建议熟练掌握其思想和代码实现。

http://www.cnnetsun.cn/news/71342.html

相关文章:

  • Windows驱动管理革命:Driver Store Explorer全面实战指南
  • Get-cookies.txt-LOCALLY:本地Cookie导出终极指南,隐私安全无忧
  • 云原生API网关认证终极指南:5步搞定Hydra+APISIX高可用集成
  • 文件哈希值批量修改新方案:告别传统计算的效率革命
  • Beyond Compare 5完整使用指南:三步实现免费授权
  • ComfyUI-Manager终极指南:一键配置AI绘画管理平台
  • 如何快速获取网盘文件真实下载地址?2025年最实用的网盘直链工具推荐
  • Redis过期键管理终极技巧:AnotherRedisDesktopManager可视化监控实战
  • 知识星球内容数字化归档:从信息流到结构化知识库的技术实践
  • NatTypeTester终极指南:3分钟快速诊断网络NAT类型,彻底解决游戏卡顿和视频会议延迟问题
  • Tsuru容器平台架构深度解析:企业级PaaS部署实战指南
  • GHelper终极指南:7步解锁华硕ROG笔记本隐藏性能
  • ACE-Step适配国产操作系统:推动开源音乐AI生态发展
  • 智能健康数据管理2025终极指南:免费多平台步数同步完整方案
  • 5分钟搭建Sunshine游戏串流:免费开源让全家共享游戏乐趣
  • 智能对话系统构建指南:5步搭建企业级微信机器人
  • HunyuanVideo-Foley + OpenCV 实现视频帧分析与音效精准匹配
  • 突破Windows权限天花板:5分钟掌握TrustedInstaller特权获取技巧
  • arp-scan局域网设备发现工具完全使用手册
  • 阴阳师脚本一键安装指南:告别手动肝游戏的终极解决方案
  • Windows虚拟显示器完整指南:免费扩展多屏工作空间
  • Windows 11远程桌面多用户终极解决方案:RDP Wrapper完整配置手册
  • 3分钟掌握Windows虚拟显示器:打造无限工作空间的终极指南
  • Transformer模型详解进阶:Qwen3-VL-30B的结构创新点剖析
  • 4个查AI率工具和2个降ai工具效果测评,分分钟AI率降到个位数!
  • 4个查AI率工具和2个降ai工具效果测评,AI率降到10%!
  • 1111111111111
  • 【办公类-18-07】20251215(Python)“口腔检查涂氟信息”批量生成打印(区名、学号、姓名、学校、班级、身份证、户籍、性别、民族)
  • HTTP网络巩固知识基础题(2)
  • Windows三指拖拽终极指南:从零配置到精通使用