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

盛最多水的容器(力扣11题)

例题:

分析:

这道题给出了一个数组,数组里的元素可以看成每一个挡板,要找到哪两个挡板之间盛的水最多,返回盛水量的最大值。这其实是一个双指针问题。

我们可以先固定第一个挡板( i )和最后一个挡板( j ),  height[0] = 1, height[8] = 7,看看盛水量。

现在盛水量比较少,要让盛水量尽可能多,假设我们先移动 j 指针

         

我们发现,固定了两个挡板,当移动高的挡板时,盛水量随着 j 指针的左移在不断减少,必然小于最初的盛水量,因此我们不能移动高挡板。

如果移动较低的挡板,如下图:

移动较低的挡板,盛水量是有可能增多的。

核心思想:向中间不断缩减距离,每次改变较短的挡板。

代码实现:
public class MostWaterLeetcode11 {public static int maxArea(int[] height) {int i = 0, j = height.length - 1;int max = 0;  //最大盛水量while(i < j){int min = Integer.min(height[i], height[j]);max = Math.max(max, (j - i) * min);while(i < j && height[i] <= min){i++;}while(i < j && height[j] <= min){j--;}}return max;}public static void main(String[] args) {System.out.println(maxArea(new int[]{1, 8, 6, 2, 5, 4, 8, 3, 7})); // 49System.out.println(maxArea(new int[]{2,1})); // 1}
}

http://www.lryc.cn/news/272428.html

相关文章:

  • .babky勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • 20240103-通过布局让自己的生活有有意义人生有价值
  • JDK17 - 开发者视角,从 JDK8 ~ JDK17 都增加了哪些新特性
  • 八股文打卡day11——计算机网络(11)
  • 在Android设备上设置和使用隧道代理HTTP
  • Paddle3D 2 雷达点云CenterPoint模型训练
  • RabbitMQ集群的简单说明
  • 支付宝沙箱支付-验签出错之编码集异常
  • 图像分割-漫水填充法 floodFill (C#)
  • 在pycharm中jupyter连接上了以后显示无此库,但是确实已经安装好了某个库,使用python可以跑,但是使用ipython就跑不了
  • C++多态性——(3)动态联编的实现——虚函数
  • docker部署mysql
  • python代码大全(持续更新)
  • C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# 处理程序异常相关技术
  • [python]项目怎么使用第三方库
  • java每日一题——双色球系统(答案及编程思路)
  • java的mybatis
  • Linux驱动开发简易流程
  • 基于springboot的靓车汽车销售网站
  • 爬取涛声网音频
  • 如何快速且有效的学习自动化测试?
  • openmmlab大模型实战营01
  • HarmonyOS-ArkTS基本语法及声明式UI描述
  • 字符串转成时间的SQL,一个多种数据库通用的函数
  • CMake入门教程【核心篇】查找包(find_package)
  • Stable Diffusion好用的显卡推荐
  • Spring 对请求参数的优雅处方式(重写序列化方法)
  • 2024年中职“网络安全“—数字调查取证(attack817.pcapng)
  • 如何使用VsCode编译C语言?
  • SpringCloud 和 Linux 八股文第三期五问五答