关键词:
截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
提取码:6666
视频分析
【数据结构和算法】LeetCode 11. 盛最多水的容器
代码部分
1,以当前柱子为桶的高度,分别从两边查找
public int maxArea(int[] height)
int maxAre = 0;// 保存最大值
int left = 0;
int right = 0;
int length = height.length;
//以当前柱子为桶的左边界开始查找
while (left < length)
// 从右边开始查找第一个不小于当前柱子的高度
right = length - 1;
while (left < right)
if (height[left] > height[right])
right--;
else
break;
//计算围成的面积
int are = height[left] * (right - left);
maxAre = Math.max(maxAre, are);
left++;
right = length - 1;
//以当前柱子为桶的右边界开始查找
while (right > 0)
// 从左边开始查找第一个不小于当前柱子的高度
left = 0;
while (left < right)
if (height[right] > height[left])
left++;
else
break;
//计算围成的面积
int are = height[right] * (right - left);
maxAre = Math.max(maxAre, are);
right--;
return maxAre;
2,双指针
public int maxArea(int[] height)
int maxAre = 0;// 保存最大值
int left = 0;
int right = height.length - 1;
while (left < right)
maxAre = Math.max(maxAre, (right - left)
* Math.min(height[left], height[right]));
// 矮的柱子往中间靠
if (height[left] < height[right])
left++;
else
right--;
return maxAre;
3,双指针优化
public int maxArea(int[] height)
int maxAre = 0;// 保存最大值
int left = 0;
int right = height.length - 1;
while (left < right)
int minHeight = Math.min(height[left], height[right]);
maxAre = Math.max(maxAre, (right - left) * minHeight);
// 如果两个柱子往中间靠的时候,有更短的或一样高的,直接跳过
while (left < right && height[left] <= minHeight)
left++;
while (left < right && height[right] <= minHeight)
right--;
return maxAre;
算法leetcode|11.盛最多水的容器(rust重拳出击)(代码片段)
文章目录11.盛最多水的容器:样例1:样例2:提示:原题传送门:分析题解rustgoc++javatypescriptpython11.盛最多水的容器:给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,he... 查看详情
11.盛最多水的容器(leetcode记录)
publicintmaxArea(int[]a) intmax=0; for(inti=0,j=a.length-1;i<j;) intminHeight=a[i]<a[j]?a[i++]:a[j--]; max=Math.max(max,(j-i+1)*minHeight); returnmax; 查看详情
leetcode11.盛最多水的容器(代码片段)
文章目录一、题目1、题目描述2、基础框架3、原题链接二、解题报告1、思路分析2、时间复杂度3、代码详解三、本题小知识四、加群须知一、题目1、题目描述 给定一个长度为nnn的整数数组heightheightheight。有nnn条垂线,第... 查看详情
leetcode11盛最多水的容器(代码片段)
https://leetcode-cn.com/problems/container-with-most-water/解决方案classSolutionpublicintmaxArea(int[]height)intl=0,r=height.length-1;intans=0;while(l<r)ans=Math.max(ans,(r-l)*Math.m 查看详情
11.盛最多水的容器(代码片段)
算法记录LeetCode题目: 给你n个非负整数a1,a2,…,an,每个数代表坐标中的一个点(i,ai)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai)和(i,0)。找出其中的两条线,使得它们与x轴共同构成... 查看详情
leetcode11盛最多水的容器(代码片段)
一.问题描述给你n个非负整数a1,a2,…,an,每个数代表坐标中的一个点(i,ai)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai)和(i,0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最... 查看详情
leetcode刷题python11.盛最多水的容器(代码片段)
1题目给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。2解析3python实现defmaxArea(se... 查看详情
leetcode刷题日记之盛最多水的容器
节后第一天,鉴于五一五天都没做过题,有点遗忘了,今天来看一道简单点的题,练下手。先看下题:给你n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai)和(i,... 查看详情
打卡算法11盛最多水的容器算法解析(代码片段)
...0c;生活感悟,觉得有用记得一键三连哦。一、题目1、算法题目“根据输入的数组数字构建坐标 查看详情
#yyds干货盘点#leetcode热题hot100:盛最多水的容器
题目:给定一个长度为n的整数数组 height 。有 n 条垂线,第i条线的两个端点是 (i,0) 和 (i,height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储... 查看详情
11.盛最多水的容器(代码片段)
1//双指针算法2classSolution34public:5intmaxArea(vector<int>&height)67intn=height.size();8intArea=0;9intl=0,r=n-1;10while(l<r)1112Area=max(Area,(r-l)*min(height[l],height[r]));13if(height[l]<height[r])l++;//木板原理,谁小谁移动14elser--;1516returnArea;1718; 查看详情
11.盛最多水的容器
给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点 (i, ai)。在坐标内画n条垂直线,垂直线i 的两个端点分别为 (i, ai)和(i,0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的... 查看详情
每日一道leetcode:11.盛最多水的容器(代码片段)
1.题目(中等)题目链接给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量... 查看详情
11.盛最多水的容器(代码片段)
题目:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai)。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai)和(i,0)。找出其中的两条线,使得它们与 x ... 查看详情
11.盛最多水的容器(代码片段)
11.盛最多水的容器给你n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai)和(i,0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容... 查看详情
11.盛最多水的容器(代码片段)
盛最多水的容器给你n个非负整数a1,a2,…,an,每个数代表坐标中的一个点(i,ai)。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai)和(i,0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳... 查看详情
11.盛最多水的容器(代码片段)
给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。... 查看详情
11.盛最多水的容器(代码片段)
11.盛最多水的容器方法一classSolution(object):defmaxArea(self,height):""":typeheight:List[int]:rtype:int"""h_len=len(height)i=0k=-1s=[]whileh_len+k-i>=1:s.append(min(height[i],height[k])*(h_len+k-i))ifheight[i]<=height[k]:i+=1else:k-=1returnmax(s)#测试用例"""输入:[1,8,6,2,5,4,8,... 查看详情