Leetcode_11_盛最多水的人_双指针

该博客探讨了一种动态规划算法,用于解决给定一组高度的矩形条,如何通过移动左右指针找到最大覆盖面积的问题。算法通过比较左右指针所指矩形的高度,动态更新最大面积。在不断移动指针的过程中,确保了能找到组合的最大面积。

想法很简单,难的是证明
左右指针指向开头和结尾
将短板的指针向内移动一格
难的是如何证明这么做能让面积最大。

class Solution {
    public int maxArea(int[] height) {
        int len = height.length;
        int first = 0;
        int second = len - 1;
        int ans = 0;
        int now;
        while (first != second) {
            if (height[first] > height[second]) {
                now = (second - first) * height[second];
                second--;
            } else {
                now = (second - first) * height[first];
                first++;
            }
            if (now > ans) {
                ans = now;
            }
        }
        return ans;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值