Leetcode11. 盛最多水的容器-双指针

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明:你不能倾斜容器。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/container-with-most-water
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Leetcode11. 盛最多水的容器-双指针_第1张图片

 思考:首先我们定位数组的首尾两个坐标left,right,计算形成的面积,下面我们移动left或者right使形成的面积更大,由于面积为宽*高 宽为 right-left  高为min(height[left],height[right]),由于向内移动,必然会导致宽变小,所以为了使面积更大,必然需要增加形成的矩形的高,所以只能是left和right比较低的向内移动,所以我们把这些移动后的结束取其中大的值,就是题求

public int maxArea(int[] height) {
    int left = 0;
    int right = height.length-1;
    int res = 0;
    //左右重合的时候循环结束
    while (left 
  

Leetcode11. 盛最多水的容器-双指针_第2张图片

         题目的思路最重要,思路参考题解,还是要多动脑子,才能学好算法。

你可能感兴趣的:(算法学习,leetcode)