首页
学习
活动
专区
圈层
工具
发布

leetcode-11-盛最多水的容器

,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。...找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 ? 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。...在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。...我们直觉都是从木板长度最大的找起,接着逐步变小,但会发现这样子其实还是要遍历全部情况。 而且这种情况下写代码还挺复杂的。 不如从另外一个变量,木板之间的间隔长度找起,从两端这个最大的长度找起。...只有这样,才能在减小木板间距的时候,增大面积。

69720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    漫画:腾讯面试题(盛最多水的容器)

    ,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。...找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 ? 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。...在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。...示例: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 02 PART 题目分析 观察可得,垂直的两条线段将会与坐标轴构成一个矩形区域,较短线段的长度将会作为矩形区域的宽度,两线间距将会作为矩形区域的长度...,我们求解容纳水的最大值,实为找到该矩形最大化的区域面积。

    57420

    LeetCode-11 盛最多水的容器

    盛最多水的容器 > 难度:中等 > 分类:数组 > 解决方案:双指针 今天我们学习第11题盛最多水的容器,这是一个数组的中等题,这个题目难度不大,记得在秋招面试中遇见过。...在坐标内画 n条垂直线,垂直线 i的两个端点分别为 (i,ai)和 (i,0)。找出其中的两条线,使得它们与 x轴共同构成的容器可以容纳最多的水。...说明:你不能倾斜容器,且 n的值至少为 2。 ? 【题目示意图】 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。...在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。...分析 结合这个题目通过给出的示意图来理解比较容易,输入数组中的数据代表水池的高度,数组中数据之间距离表示水池的宽度,它们的乘积则为可以容纳的水(即面积)。

    59110

    每日两题 T28

    盛最多水的容器[1] 描述 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。...在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。...说明:你不能倾斜容器,且 n 的值至少为 2。 ? 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。...fulfilled: 一个promise被resolve后就处于fulfilled状态,这个状态不能再改变,而且必须拥有一个不可变的值(value)。...rejected: 一个promise被reject后就处于rejected状态,这个状态也不能再改变,而且必须拥有一个不可变的拒绝原因(reason)。

    28820

    盛最多水的容器

    1 题目描述 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。...找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。...在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。...: 矩阵的长度:两条垂直线的距离 矩阵的宽度:两条垂直线其中较短一条的长度 因此,要矩阵面积最大化,两条垂直线的距离越远越好,两条垂直线的最短长度也要越长越好。...此时,两条垂直线的距离是最远的,若要下一个矩阵面积比当前面积来得大,必须要把 height[left] 和 height[right] 中较短的垂直线往中间移动,看看是否可以找到更长的垂直线。

    54530

    力扣经典150题解析之二十八:盛最多水的容器

    力扣经典150题解析之二十八:盛最多水的容器 1. 介绍 在这篇文章中,我们将解析力扣经典150题中的第二十八题:盛最多水的容器。...题目要求找出能够容纳最多水的容器,即找出数组中的两条线段,使得它们与 x 轴构成的容器能够容纳最多的水。 2. 问题描述 给定一个长度为 n 的整数数组 height,数组中每个元素表示垂直线的高度。...找出数组中的两个元素,使得它们构成的容器能够容纳最多的水。 3....示例 示例 1: 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。...测试与验证 测试用例设计 输入数组长度为2,包含两个元素。 输入数组长度为3,包含三个元素。 输入数组长度为9,包含多个元素。

    14510

    LeetCode - 盛最多水的容器

    ,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。...找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 ? 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。...在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。...我的解法是,遍历所有的可能性,然后分别求出当前的高度,并计算容积,最后取最大值。 很明显暴力解法是很慢的,因为有很多无用的循环比较在其中。更快的方法也有,就是双指针法。...是因为高度和长度是制约容积的两大因素,如果容积受限于高度,就应该想办法去获取更高的高度,虽然长度可能会有损失。 双指针法的话,只需要遍历一遍数组就好了,很明显更高效。

    50520

    盛最多水的容器

    给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。...找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。...在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49 示例: 输入: [1,8,6,2,5,4,8,3,7] 输出: 49 class Solution { public int maxArea...}else{ R--; } } return maxArea; } } 我们在由线段长度构成的数组中使用两个指针...但是,在同样的条件下,移动指向较短线段的指针尽管造成了矩形宽度的减小,但却可能会有助于面积的增大。因为移动较短线段的指针会得到一条相对较长的线段,这可以克服由宽度减小而引起的面积减小。

    38920

    C++ OpenCV形态学操作--提取水平和垂直线

    原理方法 图像形态学操作时候,可以通过自定义的结构元素实惠结构元素对输入图像一些对象敏感,另外一些不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出,通过使用两个最基本的形态学操作--膨胀和腐蚀,使用不同的结构元素实现对输入图像的操作...-- adaptiveThreshold 定义结构元素 开操作(腐蚀+膨胀)提取水平与垂直线 ?...,因为原来的图像里面找不到水平和垂直的线,所以我们新换了一个图片 ?...分之一长,如果不够五分之一长度就过滤掉,1是高度,所以这样就是一个横线的元素 4.进行开操作 ?...可以看到只保留了长度为图像五分之一长的横线. 取垂直线 ? 我们把刚才的代码改造一下,让垂直和水平都显示出来 垂直线取法就是在Size里面把后面的高度改为图像的五分之一 显示效果为 ?

    1.5K10

    【LeetCode10】盛最多水的容器

    ,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。...找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 ? 图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。...在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 示例: 输入: [1,8,6,2,5,4,8,3,7]输出: 49 先思考一下,后面我会给出一个解题思路~? ?...这里解释一下: 因为水槽面积由左右指针的最"矮"的那个高度以及底面长度决定的,而每次往里收缩,底面长度会变小,如果移动"高"的那个指针,即便遇到了更高的指针,水槽高度还是由"矮"的指针决定,而底面长度又变小了...鹰眼凭借自身高超的射术加入复仇者联盟,尽管拥有超强的射击技术加上精良的装备但是依旧是肉体凡胎,在复仇者联盟中处于辅助型的地位。

    53510

    LeetCode【11】-- 盛水最多的容器

    ,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。...找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器。...在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 思路与解答 这道题的是要找出最大的容器,最大的容器是怎么算的呢?...这个时候,我们保证了一开始的长度就是最长的,只要找到更高的,就一定是容器体积较大的。...之所以是数值较小的指针移动,是因为要想容器变大,那么需要将较矮的数值拉高,就像是木桶原理,木桶能装的水,是由最短的“板”决定的,因此需要寻找更高的”板“。

    34210

    LeetCode-11-盛最多水的容器

    # LeetCode-11-盛最多水的容器 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。...在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。...说明:你不能倾斜容器,且 n 的值至少为 2。...,现在的问题是怎么样去移动首尾指针,才能够使得面积最大 想象一下,无论首尾指针谁大,我们都需要移动一次首尾指针,依次判断面积谁更大,此时无论是移动首还是尾指针,底部长度的变化都是1。...经过思考,移动值较小的那个指针,保留值较大的指针,可以使得面积更大的概率更大。

    25310

    双指针-盛最多的水

    给定一个长度为 n 的整数数组 array.有 n 条垂线, 第 i 条线的两个端点是 (i, 0) 和 (i, array[i]) ....找出其中的两条线, 使得它们与 x 轴共同构成的容器可以容纳最多的水. 返回容器可以储存的最大水量. 1....分析 首先, 本题中要想能盛最多的水, 就需要更宽的底, 作为容器两端的边就要更高, 更确切的说是容器两边的较矮的边更高, 容器短板更高....换成数学语言, 也就意味着在二维坐标系中所占的矩形面积最大的, 两条垂直线的距离越远越好,两条垂直线的最短长度也要越长越好. 而面积是由底和高两部分构成....指针移动的目的是为了寻找更高些的容器短板, 就需要选择较小的值, 移动到下一个位置. 3.代码 static Result maxArea(int[] array) { Result result

    35840

    精读《算法 - 滑动窗口》

    盛最多水的容器 盛最多水的容器是一道中等题,题目如下: 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。...在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。...因为我们看怎么计算容纳水的体积?其实这道题就简化为长乘宽。 长度就是选取的两个柱子的间距,宽就是其中最短柱子的高度。问题就是,虽然柱子间距越远,长度越大,但宽度不一定最大,一眼是没法看出来最优解的。...定义 left right 两个指针,分别指向 0 与 n-1 即首尾两个位置,此时长度是最大的(柱子间距离是最远的),接下来尝试一下别的柱子,试哪个呢? 较长的那个?...如果指针选在中间位置,那么指针外移时,柱子的间距与柱子长度同时变化,就很难找到一条完美路线。

    81020

    【OpenHarmony】OpenHarmony 开发基础 ③ ( @State 注解修饰变量 | Row 布局 | OpenHarmony 的 Length 属性值 | Column 布局 )

    属性 : 子组件的间距 可以通过 space 属性设置 , 默认间距为 0 ; alignItems 属性 : 设置 子组件 垂直方向 的 对齐方式 ; VerticalAlign.Center...中左对齐 ; Row 组件代码示例 : @Entry @Component struct Example { build() { Row({ space: 10 }) { // 设置子组件间距为..., 高度是 30 vp 视窗像素 ; 3、OpenHarmony 的 Length 属性值 在上面涉及到很多设置长度属性的地方 , 如 : space: 10 设置 Row 布局中的 子组件 之间的 水平间距...不是 屏幕的 百分比 ; 在 组件 布局时 , 基本都使用 百分比 进行布局 ; 4、Column 垂直线性布局 OpenHarmony 的 Column 组件 是 垂直线性布局 , 布局中的子组件...沿垂直方向进行排列 , , 常用属性如下 : space 属性 : 子组件的 垂直 间距 可以通过 space 属性设置 , 默认间距为 0 ; alignItems 属性 : 设置 子组件 水平方向

    57011

    网格系统 CSS Grid Layout

    Grid Item:Item是container的直接子元素,如果不考虑单元格的合并跟下面的cell是一样的,对应上图的一个个格子,如蓝色的A1 Grid Lines:网格线分为水平线和垂直线,对应上图的橙色线条...Grid Track:就是由lines构成的水平和垂直空间,对应到上图的水平和垂直灰色区域,而对于table来说就是row和column Grid Cell:简单来说就是单元格了,对应到上图就是蓝色的...上的属性,这里我大概分为三大类: 第一类:如何去定义一个网格系统,行列及间距等 display:grid/inline-grid,定义使用网格系统 grid-template-columns:定义垂直栏...grid-template-rows:定义水平行 grid-template-areas:定义区域 grid-column-gap:定义垂直栏与垂直栏之间的间距,如上图的A与B之间的间距 grid-row-gap...:定义水平行与水平行之间的间距,如上图的1与2之间的间距 grid-gap:上面两个栏与行间距的缩写 第二类:对齐的方式,属性跟flex的有点像: justify-items:item在水平行中的对齐方式

    2.9K10
    领券