首页 > 其他分享 >LeetCode 热题 100 之 11. 盛最多水的容器

LeetCode 热题 100 之 11. 盛最多水的容器

时间:2023-07-17 10:22:07浏览次数:37  
标签:11 容器 temp max height 最多水 移动 热题 指针

题目描述

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

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

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

说明:你不能倾斜容器。

示例 1:
image

输入:[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

提示:

n == height.length
2 <= n <= 10^5
0 <= height[i] <= 10^4

思路

双指针:由于影响容器大小的有两个变量:容器的底,容器的高(左右两条边的较小值决定),因此我们需要在控制变量。一开始两个指针一个指向开头一个指向结尾,此时容器的底是最大的,接下来随着指针向中心移动,会造成容器的底变小,而任意指针移动一次,底总是减少1。在这种情况下想要让容器盛水变多,只能让移动后的容器尽可能的高。所以我们选择指针所指的高较小的那个指针进行移动,这样我们就保留了容器较高的那条边,放弃了较小的那条边,以获得有更高的边的机会。

代码

class Solution:
    def maxArea(self, height: List[int]) -> int:
        max = 0
        i = 0
        j  =len(height)-1
        while(i<j):
            if(height[i] > height[j]):
                h = height[j]
            else:h = height[i]
            temp = (j-i)*h
            if(temp > max):
                max = temp            
            if(height[i]>height[j]):
                j -= 1
            else: i += 1
        return max

标签:11,容器,temp,max,height,最多水,移动,热题,指针
From: https://www.cnblogs.com/anamzingclown/p/17559281.html

相关文章

  • 11
    importosimportglobimporth5pyimportrandomfromPILimportImagefrommatplotlibimportpyplotaspltimporttorch.utils.dataasdatafromtorch.utils.dataimportDataLoaderimporttorchvision.transformsastfsfromtorchvision.transformsimportfun......
  • cm311-1a-yst机顶盒刷Armbian问题汇总
    一.刷入底包我因为没有买免拆机的刷机神器,只能使用拆机短接触点的方法,其中重要的注意事项:1.使用两头都是usbA口的数据线,可以自己制作,尽量短,减少干扰.2.插机顶盒的usb口必须是靠近网口端那个,插电脑的端口,最好是usb3.0或以上,供电会好一些3.使用刷机工具软件......
  • CVE-2019-11043(PHP远程代码执行漏洞)复现
    一、漏洞介绍1、相关背景在web早期,页面都是以静态页面为主(如:HTML),没有动态页面的说法,所有还没有动态语言(如:PHP、JSP等)后来Ngnix为支持PHP语言就将有出现php页面的请求给PHP相关程序来进行处理,然后将处理后的结果反馈给用户。而解决PHP的相关程序就是cgi协议,有了cgi协议以后......
  • p1104 生日
    这道题目让我学会了sort函数()最后可以添加一个bool类型的cmp函数作为比较条件,其他就比较简单了#include<iostream>#include<algorithm>usingnamespacestd;structmember{stringname;intyear;intmonth;intday;intnum;}oi[105];intn;bo......
  • win11 Copilot开启使用
    1.升级更新Windows预览版234932.更新Edge版本1153.安装ViVeToolv0.3.3地址:https://github.com/thebookisclosed/ViVe/releases/tag/v0.3.3 教程:https://blog.csdn.net/qq_36693723/article/details/131583470......
  • Python 潮流周刊第 11 期(2023-07-15)
    查看全文:Python潮流周刊#11:如何使用Golang运行Python代码?......
  • mysql 数据库 1130 error
    mysql-uroot-p接下来输入刚刚创建的密码  成功进入之后需要输入以下命令usemysql;  //切换数据库updateusersethost='%'whereuser='root';  输入完成之后 selectHost,Userfromuser;查看以下修改结果 +-----------+---------------+|Host|User......
  • 20090211_擲筊的方式 (基礎篇)
    要問神明事情有分菩薩佛祖...需要三杯(EX:觀世音菩薩,地藏王菩薩、阿彌陀佛等等。)神..只需要一杯(EX:關聖帝君,媽祖娘娘,土地公,王母娘娘等等。) 首先要先把自己的基本資料先報上,姓名,出生的(國or農曆)年月日(時辰),住家地址..先詢問是否可以問關於XXX的事情,可否同意給個方向......
  • 解密Prompt系列11. 小模型也能COT-先天不足后天来补
    前两章我们分别介绍了COT的多种使用方法以及COT的影响因素。这一章更多面向应用,既现实场景中考虑成本和推理延时,大家还是希望能用6B的模型就不用100B的大模型。但是在思维链基础和进阶玩法中反复提到不论是few-shot还是zero-shot的思维链能力似乎都是100B左右的大模型才有的涌现能......
  • 110.Object.defineProperty介绍
    110.Object.defineProperty介绍?Object.defineProperty函数一共有三个参数,第一个参数是需要定义属性的对象,第二个参数是需要定义的属性,第三个是该属性描述符。一个属性的描述符有四个属性,分别是value属性的值,writable属性是否可写,enumerable属性是否可枚举,configurable......