尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

力扣HOT100-5 盛最多水的容器(Java实现)

力扣HOT100-5 盛最多水的容器(Java实现)
📅 发布时间:2026/6/25 22:36:57

题目

题目解读

1.木桶效应,短边决定蓄水量
2.选定i < j,水量 =(j - i) × min(height[i], height[j])

开始解题

一、暴力枚举

思路:

双重循环尝试所有组合(i, j),计算面积并更新最大值。

核心流程:

1.初始化 maxArea = 0。

2.外层循环 i 从 0 到 n-2。

3.内层循环 j 从 i+1 到 n-1:

计算 area = (j - i) * min(height[i], height[j])。

maxArea = max(maxArea, area)。

4.返回 maxArea。

代码

public int maxArea(int[] height) { int n = height.length; int maxArea = 0; for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { int area = (j - i) * Math.min(height[i], height[j]); maxArea = Math.max(maxArea, area); } } return maxArea; }

二、双指针法

思路:

想要一次遍历找到最大水量,我们需要一种聪明的方式排除不可能成为答案的柱子组合。

初始时,左右指针放在数组两端(此时宽度最大)。对于当前的两根柱子,容器的水量取决于较矮的那根(短板效应)。
如果我们固定短板,向内移动另一根更高的柱子,宽度减小,但高度最大也只能是短板的高度,因此面积不可能增大。
因此,唯一可能得到更大面积的方法,就是向内移动短板,虽然宽度变小,但有可能遇到更高的短板,从而抬高水位。

所以策略是:每次计算当前面积后,移动高度较小的那个指针。当两个指针相遇时,所有可能的最优解都已被检视过。

核心流程:

1.初始化 left = 0, right = n - 1, maxArea = 0。
2.当 left < right 时循环:
计算当前面积 area = (right - left) * min(height[left], height[right])。
更新 maxArea = max(maxArea, area)。
若 height[left] < height[right],则 left++;否则 right--。
3.返回 maxArea。

代码

public int maxArea(int[] height) { int left = 0, right = height.length - 1; int maxArea = 0; while (left < right) { int minH = Math.min(height[left], height[right]); int area = (right - left) * minH; maxArea = Math.max(maxArea, area); // 移动较短的那边 if (height[left] < height[right]) { left++; } else { right--; } } return maxArea; }

感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。

相关新闻

  • 摩尔线程发布图形显卡驱动v340.150,创作与游戏体验同步升级
  • 表征学习实战指南:从原理到ViT自监督预训练
  • 【软工方法论24】软件测试方法论从单元测试到系统测试

最新新闻

  • 对于invoke和Begininvoke在委托和控件中的用法的区分
  • 运维开发宝典042-Python自动化运维实战6
  • 生产级机器学习模型服务化:K8s上的韧性部署与可观测实践
  • 题解:学而思编程 智能饭盒
  • 终极D2DX宽屏补丁:让暗黑破坏神2在现代PC上重获新生
  • 第三视觉理解徐玉生与他的商业活动(5)

日新闻

  • 利用微PE工具箱进行系统安装教程
  • 渗透测试十大核心工具实战指南:从信息搜集到报告生成全流程解析
  • 暗黑破坏神2存档编辑器:网页版角色修改工具完全指南

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号