盛最多水的容器 双指针

题目描述

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

 

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

 

class Solution {
    public int maxArea(int[] height) {
         int l=0;
         int r=height.length-1;
         int res=0;
         int area=0;
         while(l

在初始时,左右指针分别指向数组的左右两端,

此时我们需要移动一个指针。应该移动对应数字较小的那个指针(即此时的左指针)。这是因为,由于容纳的水量是由两个指针指向的数字中较小值∗指针之间的距离 两个指针指向的数字中较小值 * 指针之间的距离  如果我们移动数字较大的那个指针,那么前者「两个指针指向的数字中较小值」不会增加,后者「指针之间的距离」会减小,那么这个乘积会减小。因此,我们移动数字较大的那个指针是不合理的。因此,我们移动 数字较小的那个指针。

你可能感兴趣的:(算法,leetcode,c++)