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

做网站的收益来源文化建设成就

做网站的收益来源,文化建设成就,甘肃做网站哪家好,怎么把网站放到服务器上力扣11. 盛最多水的容器:双指针法详解 一句话点明白你 被官方题解的一位大佬的评论点醒,在这里分享给大家:**我们left和right–都是为了尝试取到更多的水,如果短的板不动的话,取到的水永远不会比上次多。**你品&…

力扣11. 盛最多水的容器:双指针法详解

一句话点明白你

被官方题解的一位大佬的评论点醒,在这里分享给大家:**我们left++和right–都是为了尝试取到更多的水,如果短的板不动的话,取到的水永远不会比上次多。**你品,你细品!!

题目描述

给定一个长度为 n 的整数数组 height,表示垂直线的长度。找到两条垂线,使得它们与 x 轴共同构成的容器能容纳最多的水。返回容器的最大储水量。

示例

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

解法思路:双指针法

核心思想

容器储水量由 宽度较短板的高度 共同决定。双指针法从数组两端向中间移动,每次移动较短的边,通过缩小宽度来寻找更高的板,从而探索更大的储水量。

正确性证明

  • 贪心策略:移动较短的边可能使高度增加,而移动较长的边只会减少宽度且高度不会超过原短板。
  • 数学保证:每次移动后,虽然宽度减小,但保留更长的边有机会找到更高的短板,从而弥补宽度损失。

算法步骤

  1. 初始化指针:左指针 left = 0,右指针 right = height.length - 1
  2. 循环计算
    • 计算当前容器的储水量:面积 = min(height[left], height[right]) * (right - left)
    • 更新最大储水量。
    • 移动较短的边的指针(左指针右移或右指针左移)。
  3. 终止条件:当 left == right 时结束循环。

代码实现

public static int maxArea(int[] height) {int left = 0;                   // 左指针int right = height.length - 1;  // 右指针int res = 0;                    // 最大储水量while (left < right) {// 计算当前容器的储水量int currentRes = Math.min(height[left], height[right]) * (right - left);res = Math.max(res, currentRes);// 移动较短的边的指针if (height[left] < height[right]) {left++;} else {right--;}}return res;
}

力扣通过截图

在这里插入图片描述

复杂度分析

  • 时间复杂度:O(n),只需一次遍历数组。
  • 空间复杂度:O(1),仅使用常量额外空间。

示例解析

以输入 height = [1,8,6,2,5,4,8,3,7] 为例:

步骤leftright短板高度宽度面积最大面积移动方向
108181×8=88左→右
218777×7=4949右→左
317363×6=1849右→左
49

最终最大储水量为 49,由左指针 1(高度 8)和右指针 8(高度 7)组成的容器获得。


边界情况处理

  • 全零数组:所有高度为 0,储水量始终为 0。
  • 所有高度相同:储水量由宽度决定,初始宽度最大。
  • 单峰/双峰分布:双指针法能正确找到最大容器。

总结

  • 双指针法的优势:通过一次遍历高效解决问题,避免暴力法的 O(n²) 复杂度。
  • 关键思想:移动较短的边以探索更高的板,确保不漏掉更大储水量的可能性。

相似问题

  • 42. 接雨水
  • 15. 三数之和

掌握双指针法的移动策略,能有效解决数组中的区间最优问题!

http://www.dtcms.com/wzjs/539669.html

相关文章:

  • 学校网站建设管理制度做系统网站赚钱
  • 产品做网站推广广州app制作公司
  • 有哪些网站可以做推广wordpress影院主题
  • 怎么做产品网站wordpress注册可见
  • 网站域名到期怎么续费淘宝联盟 做网站
  • 网站开发记什么科目三星网上商城退款很慢
  • 房地产门户网站建设甘肃省建设厅安全员官方网站
  • 门户网站建设管理做国外网站有哪些
  • 网站建设百度资源免费咨询男科医院
  • 关于网站设计的论文学校专业群建设专题网站
  • 鞍山手机网站设计江宁网站建设价格
  • 四川平昌县建设局网站wordpress在媒体库里无法上传图片
  • 个人网站怎么做视频有网站的源代码如何做网站
  • fullpage网站电商关键词一般用哪些工具
  • 微网站建设的第一步是什么 标题网络营销与策划实践
  • 信誉好的网站开发angular 做的网站
  • wordpress 仿站交叉wordpress 调试
  • 学习网站开发流程成都app程序开发
  • 怎样做外贸网站推广网站rss生成
  • 闵行郑州阳网站建设官方网站下载微信最新版
  • 做金融网站看那些素材政协门户网站建设方案
  • 深圳好的网站制作公司中国建设银行招聘网站通知
  • 什么是多页面网站免费引流微信推广
  • 深圳自适应网站开发多少钱网络工程师面试题
  • 手机网站设计立找亿企邦wordpress弹出式表单
  • 网站域名年费多少钱怎么做微信小说网站吗
  • app商城开发网站建设广东省高校质量工程建设网站
  • 多肉建设网站的目的及功能定位不是做有网站都叫jwth
  • 魔鬼做交易网站中小企业网站的主流类型是
  • 网站 医院信息化建设wordpress category 参数