首页 > TAG信息列表 > 盛水
letcode算法--8.盛水最多的容器
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 来源:力扣(LeetCode)链接:https://leetcode.LeetCode/盛水最多的容器
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 思路 1.暴力求解 计算任意两端点间的储水量,取最大值,性能非常差Leetcode11.盛水最多的容器
问题描述: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 题解思路: 容器的面积公式:S腾讯五十题 No.7 盛水最多的容器
题目链接 左右指针,不知道为什么挺慢的4ms public class Solution { public int maxArea(int[] height) { //定义左右指针 int l = 0,r = height.length-1; int ans = 0; while(l<r){ //找最大值 int tmp = Math.min(heighleecode11——盛水问题
一开始用的暴力解法 两个for循环 因为有两个指针指向 然后第一下就是想着两个指针 然鹅指针一个在头一个在尾 开始记录了最左和最右的容量,若向内移动短指针 容器有可能变大(三种情况都有) 若移动长指针,那么容量会变小,因为两个壁最小值不变,而间距变小。 class Solution { p11.盛水最多的容器
作者 : XiaXinyu 日期 :2021-10-01 题目 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CbhY4xrk-1633062394515)(https://z3.ax1x.com/2021/10/01/4T7Jun.md.png)] 理解 这道题的关键点在于要理解木桶效应,即一个木桶能装多少水取决于最短的木板长容器盛水问题
题1:盛最多水的容器 解题:双指针 初始两个左右指针,可容纳水量min(左指针,右指针)*指针间距 S(i, j) = min(h[i], h[j]) × (j - i)移动数字较小的指针,min(h[i],h[j])可能变大 public class Solution { public int maxArea(int[] height) { int left = 0; int right = hLeetCode每日刷题-11.盛水最多的容器
11. 盛最多水的容器 题目: 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器。 示例: 输入:[1,【LeetCode每日一题】——11.盛水最多的容器
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 数组 二【题目难度】 中等 三【题目编号】 11.盛水最多的容器 四【题目描述】 给你 n 个非【力扣】盛水最多的容器
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/container-with-most-water 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容leetcode 盛水最多的容器 解析
采用双指针法: 主要思想:定义头尾两个指针,分别向中间遍历,当相遇时结束循环。存储每一次遍历容器盛水的最大容量,并不断更新。 盛水的最大容量为 左右指针高度的最小值 乘以 左右指针的距离即宽度。 则可以得到最终的盛水容量。每一次比较头尾指针的高度,若头比尾高 则尾指针向左移动,若LeetCode-11:盛水最多的容器
题解 这一题很经典,难吗?,想得到还是挺简单的。 该题的正解是 双指针 + 贪心 的策略,在其首尾各放一个指针,每次移动指针指向高度较小的数向内侧移动,在不断移动的过程中记录Max即可。 为何能保证得到最优解呢? 以图示验证算法的正确性:LeetCode 11.盛水最多的容器
LeetCode 11.盛水最多的容器 给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为盛水最多的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝Leetcode_11 盛水最多的容器
class Solution: def maxArea(self, height: List[int]) -> int: len_h = len(height) #得到列表长度 maxarea = 0 #初始化最大面积为0 i = 0 #设置第一个位置left的指针 j = len_h - 1 #设置最后一个位置right的指针