11. 盛最多水的容器 - 力扣(LeetCode)
暴力解法就是 双层循环,遍历寻找最大的值,但是会超时
这一道题可以用双指针的解法,左指针在最左边,有指针指向最右边,每次判断左右指针的值大小,如果是左指针小于有指针,就让左指针加一,如果是右指针小于左指针,让右指针减一,可以确保寻找到最大的值,有贪心的感觉
class Solution {public int maxArea(int[] height) {int l = 0;int r = height.length - 1;int result = 0;while (l < r) {int min = Math.min(height[l], height[r]);result = Math.max(result, (r - l) * min);if(height[l]<=height[r]){l++;}else if(height[r]<height[l]){r--;}}return result;}
}