帝国网站管理系统,用html5做的网站源码,沈阳人流,做网站要用什么语言题目 题解一:双指针法
思路#xff1a;
题目中的示例为#xff1a; 在初始时#xff0c;左右指针分别指向数组的左右两端#xff0c;它们可以容纳的水量为 min(1,7)∗88
此时我们需要移动一个指针。移动哪一个呢#xff1f;应该移动对应数字较小的那个指针#xff0…题目 题解一:双指针法
思路
题目中的示例为 在初始时左右指针分别指向数组的左右两端它们可以容纳的水量为 min(1,7)∗88
此时我们需要移动一个指针。移动哪一个呢应该移动对应数字较小的那个指针即此时的左指针。这是因为由于容纳的水量是由
所以我们将左指针向右移动 此时可以容纳的水量为 min(8,7)∗749。由于右指针对应的数字较小我们移动右指针 此时可以容纳的水量为 min(8,3)∗618由于右指针对应的数字较小我们移动右指针 此时可以容纳的水量为 min(8,8)∗540两指针对应的数字相同我们可以任意移动一个例如左指针 最后左指针大于右指针的时候就是循环结束的条件
动图可以参考盛最多水的容器
代码
class Solution {public int maxArea(int[] height) {//解法双指针法int pre 0;int bef height.length-1;//记录每次计算的最大面积int maxeare 0;while(pre bef){int crueare (Math.min(height[pre],height[bef]))*(bef - pre);//记录此刻的两个指针向的区域的面积maxeare Math.max(crueare,maxeare);//刷新最大面积//让指向小的数移动指针if(height[pre]height[bef]) pre pre 1;elsebef bef - 1;}return maxeare;}
}