关键是理解:容器的容积取决于两个因素: 1. 两边中较短的那条边(决定了水的高度) 2. 两边的距离(决定了水的宽度) 如果我们从最宽的容器开始,逐渐向内收缩,每次都移动较短的那条边,就一定不会错过最大容积。 双指针法的原理 为什么这样做是对的?假设我们有两个指针left和right: 1. 容积由较短的边决定 2...
当然,我们还可以做一些修剪,比如移动左指针时,其右边的柱子比左边还短,那这个柱子其实可以跳过了。 classSolution{public:intmaxArea(vector<int>&height){intret=0;intleft=0;intright=height.size()-1;while(left<right){if(left>0&&height[left]<=height[left-1]){left++;continue;}if(right<height.size...
1,11.成最多水的容器 ●题目: ●题解: 找最大面积:判断什么时候会有更大面积。 如果选定了一组边,如图中的红色,则面积由短边决定,且在这组边内的任意一条边与短边的组合不糊再大于原来的面积,因为:当找到更长边时,面积还是由短边决定,但是长变短了。如果找到更短边时,长(x轴)和宽(y轴)都变短了 ...
//登录AlgoMooc官网获取更多算法图解//https://www.algomooc.com/587.html//作者:程序员吴师兄//代码有看不懂的地方一定要私聊咨询吴师兄呀//盛最多水的容器(LeetCode11):https://leetcode-cn.com/problems/container-with-most-water/classSolution{public:intmaxArea(vector<int>&height){//设置两个索引,分...
Leetcode53】最大子数组和 |动态规划|数组 05:47 【小白都能听懂的算法课】【力扣】【Leetcode15】三数之和|数组|双指针 07:01 【小白都能听懂的算法课】【力扣】【Leetcode11】盛最多水的容器|数组|双指针 04:04 【小白都能听懂的算法课】【力扣】【Leetcode153】寻找旋转排序数组中的最小值|二分查找...
算法之双指针(共同点:核心逻辑思路:即先找到比较小的区域(例如决定了存水量),然后在比较小的区域中找到一个最大值) ~盛最多水的容器~~~接雨水 1,盛最多水的容器: 题意: 给你n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为...
396,双指针求盛最多水的容器 想了解更多数据结构以及算法题,可以关注微信公众号“数据结构和算法”,每天一题为你精彩解答。也可以扫描下面的二维码关注 给你n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。
题目:给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。解析:这道题采用双指针法。取两个指
简介:LeeCode-盛最多水的容器(python)-双指针解法 这题很简单。 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
11、盛最多水的容器(双指针) 解法1:二重循环,遍历数组,枚举出所有容器可能的容积,比较哪一个容积最大。 解法2:双指针解法,一次遍历,双指针一头一尾开始移动,根据题意,所指向元素小的指针每次移动一个位置。因为容纳的水量是由 两个指针指向的数字中较小值∗指针之间的距离 决定的。 如果我们移动数字较大的...