LeetCode做题笔记第11题:盛最多水的容器

news2024/11/20 6:24:14

题目描述

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

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

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/container-with-most-water

示例 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

解题思路

首先分析问题,盛水最多的时候,就是长乘宽最大的时候,长指的是数组下标的距离,宽指的是两条边中最短的一条边,采用双指针法可解决该问题,为了不错过最优的情况,left和right分别从两边开始往中间移动,每次只能移动一格,同时,比较左边和右边值的大小,那边的小那边的继续移动。直到左右指针相等。

完整代码

public class Solution {
    public int MaxArea(int[] height) {
            if (height.Length==2)
            {
                return 1*Math.Min(height[0], height[1]);
            }
            int left = 0;
            int right = height.Length-1;
            int maxArea = 0;
            while (left<right)
            {
                int area = (right-left)* Math.Min(height[left], height[right]);
                if (height[left]<height[right])
                {
                    left++;
                }
                else if (height[left]>height[right])
                {
                    right--;
                }
                else
                {
                    left++;
                    right--;
                }

                maxArea= maxArea>area ? maxArea : area;
            }
            return maxArea;
    }
}

Study hard and make progress every day.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/694111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uni-app 微信小程序端调用扫一扫识别小程序码(菊花码,太阳码)

返回值中&#xff0c;path就是小程序码对应的路径 扫描的码必须本小程序AppID和secret生成的&#xff0c;也可以在小程序后台-->工具-->填写小程序路径 生成进行测试 uni.scanCode({success(res) {console.log(res)} })

error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054

clone MiniGPT-4的时候报错 Cloning into MiniGPT-4... error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054 fatal: the remote end hung up unexpectedly解决办法 先 git config --global http.sslVerify "false"然后再clone就好了…

Android-推荐一个RecyclerView悬浮头部(StickyItemDecoration)

在日常Android列表开发当中&#xff0c;我们可能会遇到以下的需求&#xff1a; 我们在滑动列表的时候&#xff0c;头部View置顶不可以滑动. 我刚好看到有一个开源库可以帮我们快速实现,分享出来希望能提高看文章的小伙伴的开发效率. StickyItemDecoration StickyItemDecoration…

三极管开关电路限流电阻怎么选取

这是一个MCU驱动小功率器件的电路&#xff0c;这里仅用小功率灯珠代替负载&#xff0c;电路中用到了一个NPN的三极管&#xff0c;这个三极管在这里充当一个开关。 三极管当作开关时其工作在饱和状态&#xff0c;BE间的电压要大于开启电压&#xff0c;同时BE间的电压大于CE间的电…

【MySQL】数据库 ⑤

✍导出数据 1、使用 SELECT ... INTO OUTFILE 语句导出数据 SELECT...INTO OUTFILE 是 MySQL 用于导出数据的语句&#xff0c;它允许将查询结果保存到指定的文件中。 该语句的基本语法如下&#xff1a; SELECT column1, column2, ... INTO OUTFILE file_path FIELDS TE…

你知道什么是大语言模型吗

在自然语言处理领域&#xff0c;大语言模型是一类十分重要的技术。顾名思义&#xff0c;大语言模型指的是比较“大”的&#xff08;神经网络&#xff09;语言模型&#xff0c;它们以自上文推理词语概率为核心任务。随着机器学习和深度学习技术的不断发展&#xff0c;人工智能的…

【样式静态】创建地址 省市区,详细地址,姓名,联系方式,电话

效果图 uview 2.0 <template><view class"addbox"><view class"order bgf common_p u-border-t"><view class"common_title"><text></text> 客户信息</view><view class"flex_align_cente…

再见Navicat,dbeaver才是真爱

数据库连接工具&#xff0c;后端程序员必须要用到工具&#xff0c;常用的是 Navicat&#xff0c;Navicat是收费工具&#xff0c;如果使用破解的方式可能会收到律师函&#xff0c;今天了不起给大家推荐一款开源免费的数据库连接工具 -- dbeaver。 功能特性 1、几乎支持所有数据…

百度内容审核接口测试

百度内容审核接口测试 1、成为开发者 三步完成账号的基本注册与认证&#xff1a; STEP1&#xff1a;点击百度AI开放平台导航右侧的控制台&#xff0c;选择需要使用的AI服务项。若为未登录状态&#xff0c;将跳转至登录界面&#xff0c;请您使用百度账号登录。如还未持有百度…

Hbase之获取表的Region分布

其实就是获取上图的start key和end key 代码: object HbaseRegions {def main(args: Array[String]): Unit {val hconf: Configuration HBaseConfiguration.create()hconf.set("hbase.zookeeper.property.clientPort", "2181")hconf.set("hbase.zo…

macOS编译开源全景拼接库OpenPano

1. 准备工具 clang与cmake 如果要处理png文件要下载安装libjpeg 安装相当依赖: brew install gnu-sed brew install libjpeg brew install eigen brew install libomp2.克隆源码 git clone --recursive https://github.com/ppwwyyxx/OpenPano.git 3.编译 mkdir build cd …

Pycharm如何完全卸载干净

卸载软件 打开 控制面板->程序和功能->右键卸载 清理缓存 删除本地缓存 删除用户目录下的jetbrains缓存&#xff0c;一般在AppData目录下&#xff0c;如图所示 删除注册表信息 WinR输入regedit&#xff0c;打开注册表&#xff0c;删除如下目录jetbrains文件夹 计算机…

微信小程序,PC端打开时,设置页面最大化和恢复功能

小程序根目录下的 app.json 文件用来对微信小程序进行全局配置&#xff1a;新增属性 "resizable": true, 1.代码示范&#xff1a; 2.官方文档属性

Java集合-HashMap-源码分析

目录 HashMap源码分析 HashMap内部定义的常量与Node节点 HashMap成员变量分析 构造方法 静态工具方法 hash方法 如何计算索引值 tableSizeFor方法 还有没有其他方法得到2的n次幂? 为什么HashMap的数组长度一定是2的n次幂? HashMap核心方法 put方法 将链表转换为…

Excel VBA 多列合并到一列中

有10列&#xff0c;13行数据&#xff0c;按列合并到新建工作表中&#xff0c;空值不添加 Sub 多列合并到同一列() Dim k As Integer Dim ws As Worksheet On Error Resume Next 如遇错误继续运行 Application.ScreenUpdating False 关闭屏幕刷新 Application.DisplayAlerts F…

Java实现布隆过滤器的几种方式

目录 一、前言二、什么是布隆过滤器&#xff1f;三、布隆过滤器原理四、布隆过滤器使用场景五、空间占用估计六、实际元素超出时&#xff0c;误判率会怎样变化七、布隆过滤器实现方式1、手动硬编码实现2、引入 Guava 实现3、引入 hutool 实现4、通过redis实现布隆过滤器 八、使…

【Linux】MySQL 进阶语句

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 MySQL 进阶语句 算排名算中位数算累积总计算总合百分比算累积总合百分比 use zs; CREATE TABLE ikun (Name char(10),Sales int(5)); INSERT INTO ikun VALUES (cx,10); INSE…

服务器内存爆炸

我在122服务器上测试了FullMouseBrain的数据集&#xff0c;发现内存爆炸 print("................................................import package ....................................") import os import sys ###############################################…

Objective-C 父元素和子元素的点击事件

场景&#xff1a; &#xff08;需求1&#xff09;pageA一开始是【默认模式】&#xff0c;点击父元素view&#xff08;包括【搜索】文字&#xff09;&#xff0c;进入【搜索模式】&#xff1b; &#xff08;需求2&#xff09;在pageA中&#xff0c;点击【取消】文字时&#xff…

YUM搭建LNMP

配置在线源 安装Nginx 检查安装版本 开启服务设置开机自启 安装MySQL 连接MySQL 开启服务设置开机自启 在日志中查看MySQL用户原始密码 登录MySQL 关闭自动更新 安装 php7.2 开启服务设置开机自启查看版本号 配置 nginx 支持 PHP 解析 测试MySQL是否能成功登录