LeetCode 11. 盛最多水的容器

盛水最多的容器

题目链接 11. 盛最多水的容器

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

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

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

**说明:**你不能倾斜容器。

示例 1:

img

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

题目解释

就是求我们水桶的最大的容量,其中高度是我们左右两个元素的较小值,宽度是对应元素下标的差值.

算法原理

一般情况下,我们可以使用暴力求解.不过这里暴力求解是会超时的.这里我们也是使用双指针.我们先看一个情况.

image-20231023180843752

V = v = (right - left) * min(height[right], height[left])

我们固定左右的位置,这里假设num[left] < num[right],下面我们该如何移动我们的left和right,存在下面两种

  • left向右移
  • right向左移

首先我们要确定的是无论上面如何移动,那么我们的宽度一定是减少的,如果我们想要较大的容量,只能寄托于我们的高度提升.

对于left右移,这里有可能高度会提升,毕竟我们的原本的高度是height[left].但是如果我们right右移,此时我们对于right-1的元素会有三个情况

  • height[right-1] > height[left]
  • height[right-1] == height[left]
  • height[right-1] < height[left]

但是,无论从哪一个角度出发,我们移动right的得到的容量都比原本的要小

细节补充

补充一下,我们上面举了一个例子,我们每一次的移动都是希望我们下一次的容量比当前容量更大,至于那些一定比我们当前小的,那么就直接舍弃

代码编写

class Solution {
public:int maxArea(vector<int>& height) {int left = 0;int right = height.size() -1;int result = 0;while(left < right){result = max(result, (right-left)*min(height[left], height[right]));if(height[left] < height[right]) left++;else right--;}return result;}
};

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx Proxy代理

代理原理 反向代理产生的背景&#xff1a; 在计算机世界里&#xff0c;由于单个服务器的处理客户端&#xff08;用户&#xff09;请求能力有一个极限&#xff0c;当用户的接入请求蜂拥而入时&#xff0c;会造成服务器忙不过来的局面&#xff0c;可以使用多个服务器来共同分担成…

【经典PageRank 】02/2 算法和线性代数

系列前文&#xff1a;【经典 PageRank 】01/2 PageRank的基本原理-CSDN博客 一、说明 并非所有连接都同样重要&#xff01; 该算法由 Sergey 和 Lawrence 开发&#xff0c;用于在 Google 搜索中对网页进行排名。基本原则是重要或值得信赖的网页更有可能链接到其他重要网页。例…

【小程序】实现一个定制的音乐播放器

应用地址&#xff1a;https://spacexcode.com/player 介绍 这是为自己制作的一个在线 Web 版的音乐播放器。众所周知&#xff0c;现在市面上的所有的音乐平台都是会员制。而免费的资源却分散在网络上的各个角落&#xff0c;为此&#xff0c;我收集了自己 喜欢的音乐&#xff0…

选购采购管理软件,首先考虑这5个功能

虽然采购已经达到了数字化的临界点&#xff0c;但企业在接受新的解决方案时却犹豫不决。德勤一份全球首席采购官调查显示&#xff0c;只有 18% 的组织制定了数字化采购战略。 自动化采购任务和优化采购到付款周期可以为企业节省大量金钱和时间。然而&#xff0c;通过过时的采购…

JVM、JRE、JDK

JVM JVM&#xff08;Java Virtual Machine&#xff09;是Java虚拟机的缩写&#xff0c;他是Java编程语言运行时环境&#xff0c;负责执行Java字节码。另外作为JVM虚拟机&#xff0c;它在各种操作系统上提供统一的平台&#xff0c;这帮助Java应用程序可以独立于操作系统底层运行…

v-for列表渲染

一、v-for迭代数组 <li v-for"(e,index) in emp" :key"e.id">编号{{index1}} 名字{{e.name}} 年龄{{e.age}} </li> e 是循环数组中的每个元素的别名index 是当前循环的下表&#xff0c;从0开始:key 的作用&#xff1a; 是为了给 Vue 一个提示…

【AI视野·今日Sound 声学论文速览 第二十九期】Thu, 19 Oct 2023

AI视野今日CS.Sound 声学论文速览 Thu, 19 Oct 2023 Totally 9 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Take the aTrain. Introducing an Interface for the Accessible Transcription of Interviews Authors Armin Haberl, J rgen Flei , Dom…

[C++] 类与对象(上)

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C和Linux &#x1f33c;博客专栏&#xff1a;C入门 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&#x1f3fb; …

设计模式篇---组合模式

文章目录 概念结构实例总结 概念 组合模式&#xff1a;组合多个对象形成树形结构以表示具有部分-整体关系的层次结构。组合模式让客户端可以统一对待单个对象和组合对象。 当我们开发中遇到树形结构的业务时&#xff0c;可以考虑使用组合模式。&#xff08;我也没有想明白为啥…

前端如何直接上传文件夹

前面写了一篇仿写el-upload组件&#xff0c;彻底搞懂文件上传&#xff0c;实现了选择/拖拽文件上传&#xff0c;我们经常看到一些网站支持直接选择整个文件夹上传&#xff0c;例如&#xff1a;宝塔面板、cloudflare托管、对象存储网站等等需要模拟文件路径存储文件的场景。那是…

px4仿真实现无人机自主飞行

一,确定消息类型 无人机通过即在电脑是现自主飞行:思路如下。 通过Mavros功能包,将ROS消息转换为Mavlink消息。实现对无人机的控制。 几种消息之间的关系如下: 对于ROS数据,就是我们机载电脑执行ROS系统的数据。 对于Mavros消息,就是Mavros功能包内部的消息。查询网站…

leetcode:575. 分糖果(python3解法)

难度&#xff1a;简单 Alice 有 n 枚糖&#xff0c;其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长&#xff0c;所以前去拜访了一位医生。 医生建议 Alice 要少摄入糖分&#xff0c;只吃掉她所有糖的 n / 2 即可&#xff08;n 是一个偶数&#xff09;。Al…

《数字图像处理-OpenCV/Python》连载(26)绘制椭圆和椭圆弧

《数字图像处理-OpenCV/Python》连载&#xff08;26&#xff09;绘制椭圆和椭圆弧 本书京东优惠购书链接&#xff1a;https://item.jd.com/14098452.html 本书CSDN独家连载专栏&#xff1a;https://blog.csdn.net/youcans/category_12418787.html 第 4 章 绘图与鼠标交互 本章…

同心创变,共赢未来 ▏易我科技2023年度“春种秋收”经营分析会圆满举行

2023年10月12日—10月13日&#xff0c;易我科技举行了2023年度管理层秋季团建暨“春种秋收”经营分析会&#xff0c;全体管理干部参加了本次活动。 01 本次团建活动的主题是“同心创变&#xff0c;共赢未来”&#xff0c;旨在通过一系列有趣而富有挑战性的团队活动&#xff0c…

计算机能转嵌入式吗?

计算机能转嵌入式吗&#xff1f;计算机和嵌入式不是一个范畴的&#xff0c;嵌入式是计算机的一个求职方向或者细分领域。你应该把他和Java放在一个层次上而不是跟整个计算机放在一个层次上。最近很多小伙伴找我&#xff0c;说想要一些嵌入式资料&#xff0c;然后我根据自己从业…

Node编写用户注册接口

目录 前言 创建服务器 编写注册接口API 创建路由对象&#xff0c;将路由对象导出去 将路由对象导出到服务器中 判断用户发起注册请求时是否输入账号或密码 验证表单数据 在数据库中创建表 在node中绑定mysql数据库 判断用户注册的账号密码是否已经被注册 密码加密 完…

水质分析仪器升级新功能

水质分析仪器&#xff1a;是一种适用于水质多参数测试的便携式仪器。它具有7英寸的触摸彩色屏幕&#xff0c;用户可以通过触摸屏幕进行操作和查看测试结果。 该仪器主要用于测定COD&#xff0c;氨氮&#xff0c;总磷&#xff0c;总氮等常规水质指标&#xff0c;pH值、溶解氧、…

CVer从0入门NLP(一)———词向量与RNN模型

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

rancher2.6.4配置管理k8s,docker安装

docker快速安装rancher并管理当前k8s集群。 1、拉镜像 docker pull rancher/rancher:v2.6.4 2、启动rancher 启动很慢 --privileged必须拥有root权限&#xff0c;并挂载卷 docker run --privileged -d --restartunless-stopped -p 80:80 -p 443:443 -v /usr/local/docker_vo…

模拟经营微信小游戏-休闲餐厅上线了

《休闲餐厅》是一款关于餐厅经营的小游戏&#xff0c;玩家可以在游戏中扮演餐厅老板&#xff0c;经营自己的休闲餐厅&#xff0c;收集美丽的厨娘&#xff0c;炒菜、做饭、卖钱、装饰餐厅&#xff0c;享受经营的乐趣。 在游戏中&#xff0c;玩家可以解锁几百种菜品&#xff0c;每…