5 双指针问题-接雨水的问题

2024-01-10 11:01:24

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

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

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


?

int ResetDatas(vector<int>& height) {
 
    //S(i,j)=min(h[i],h[j])×(j?i)
    int l = 0, r = height.size() - 1;
    int ans = 0;
    while (l < r) {
        int area = min(height[l], height[r]) * (r - l);
        ans = max(ans, area);
        if (height[l] <= height[r]) {
            ++l;
        }
        else {
            --r;
        }
    }
    return ans;
 }

文章来源:https://blog.csdn.net/u012545581/article/details/135496095
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。