(Java)心得:LeetCode——11.盛最多水的容器

devtools/2024/9/23 1:06:04/

一、原题

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明:你不能倾斜容器。

示例 1:

输入:[1,8,6,2,5,4,8,3,7]
输出:49 
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

示例 2:

输入:height = [1,1]
输出:1

二、心得

        上一道题把我折磨得不行,来这道题压压惊~~~

        这道题的思路很简单,且听我道来:由于容器是由左挡板(l)和右挡板(r)围成的,因此这是一个双指针的问题,所以可选择从最外层的两个挡板向中间压缩,记录每次容器的盛水大小,即左挡板和右挡板之间的距离 × 左右挡板两者最短者,最后选出最大值即可。

        具体代码如下(快速拿下):

java">class Solution {public int maxArea(int[] height) {int l = 0, r = height.length - 1;int num = 0;while(l < r){int area = Math.min(height[l], height[r]) * (r - l); // 容器的盛水大小num = Math.max(num, area);if(height[l] <= height[r]){l ++; // 左边的挡板向右移一个}else{r --; // 右边的挡板向左移动一个}}return num;}
}

        看着这道题,由于短板的存在,会导致盛水量的大小不一。这不禁会联想到木桶效应,认为应该提升自身的短板,以达到最好的自己。但给我的启发是,只要自己做得做好,又何必去审视自己是否存在短板呢,因为你已经是做得最好了。只有自己肯定自己,木桶效应也就是不存在的~


http://www.ppmy.cn/devtools/40018.html

相关文章

Vivado功耗之散热模型详解

目录 一、前言 二、热模型 三、结温计算 四、散热器计算 五、参考资料 一、前言 ​在功耗评估中&#xff0c;Vivado中report power流程以及XPE中都有关于environment的配置&#xff0c;该界面配置涉及到多个晦涩的概念&#xff0c;之前的文章中也对相关概念进行过翻译&…

数据结构复习指导之二叉树的概念

文章目录 二叉树 考纲内容 复习提示 1.二叉树的概念 1.1二叉树的定义及其主要特性 1.1.1二叉树的定义 1.1.2几种特殊的二叉树 1.1.3二叉树的性质 1.2二叉树的存储结构 1.2.1顺序存储结构 1.2.2链式存储结构 知识回顾 二叉树 考纲内容 &#xff08;一&#xff09;树…

组合模式(Composite)——结构型模式

组合模式(Composite)——结构型模式 组合模式是一种结构型设计模式&#xff0c; 你可以使用它将对象组合成树状结构&#xff0c; 并且能通过通用接口像独立整体对象一样使用它们。如果应用的核心模型能用树状结构表示&#xff0c; 在应用中使用组合模式才有价值。 例如一个场景…

SpringAMQP Work Queue 工作队列

消息模型: 代码模拟: 相较于之前的基础队列&#xff0c;该队列新增了消费者 不再是一个&#xff0c;所以我们通过代码模拟出两个consumer消费者。在原来的消费者类里写两个方法 其中消费者1效率高 消费者2效率低 RabbitListener(queues "simple.queue")public voi…

GT2512-STBA 三菱触摸屏12.1寸型

T2512-STBA参数说明&#xff1a;12.1"、SVGA 800*600、65536色、TFT彩色液晶显示屏、AC电源、32MB内存 三菱触摸屏GT2512-STBA性能规格详细说明&#xff1a; [显示部] 显示软元件&#xff1a;TFT彩色液晶显示屏 画面尺寸&#xff1a;12.1寸 分辨率&#xff1a;SVGA 80…

手写Spring Ioc 循环依赖底层源码剖析

手写Spring Ioc 循环依赖底层源码剖析 前言 Spring Ioc 是一个非常重要的框架&#xff0c;它的核心是依赖注入&#xff08;DI&#xff09;和控制反转&#xff08;IOC&#xff09;。在使用 Spring Ioc 的过程中&#xff0c;我们经常会遇到循环依赖的问题。本文将介绍手写 Spri…

iOS 安装cocoapds

注意 CocoaPods安装是基于ruby环境的&#xff0c;所以要安装CocoaPods先要安装Ruby环境&#xff0c;国内不能直接安装&#xff0c;只能通过VPN或淘宝的Ruby镜像来访问。 安装过程 gem sources --remove https://rubygems.org/ ** (注意是两个“-”&#xff0c;否则会移除失败) …

PHP类和对象扩展[构造函数,析构函数]

构造函数 特性&#xff1a;实例化对象时调用 作用&#xff1a;通常用于 初始化属性值 或 执行启动时所需的操作 用法&#xff1a; function __construct($parameter){ $this->attribute $parameter; echo 对象已创建并&#xff0c;初始化attribute属性值为parameter; …