【Container With Most Water】cpp

题目:

Given n non-negative integers a1a2, ..., an, where each represents a point at coordinate (iai). n vertical lines are drawn such that the two endpoints of line i is at (iai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

Note: You may not slant the container.

代码:

复制代码
class Solution {
public:
    int maxArea(vector<int>& height) {
            if ( height.size()<2 ) return 0;
            int max_area = 0;
            int left = 0;
            int right = height.size()-1;
            while ( left<right )
            {
                if ( height[left]<=height[right] )
                {
                    max_area = std::max(max_area, (right-left)*height[left]);
                    left++;
                }
                else
                {
                    max_area =  std::max(max_area, (right-left)*height[right]);
                    right--;
                }
            }
            return max_area;
    }
};
复制代码

tips:

试图用DP去做,但是没想出来;最后无奈落入了Greedy的俗套solution。

这个greedy的思路也是蛮巧的:从两头开始往中间greedy,头尾两个greedy一起变化才得到greedy的条件。

=======================================

第二次过这道题,这道题题意不清晰:如果选了某两个板子,就当其他板子不存在。

复制代码
class Solution {
public:
    int maxArea(vector<int>& height) {
            int l = 0;
            int r = height.size()-1;
            int ret = 0;
            while ( l<r )
            {
                if ( height[l]<=height[r] ) 
                {
                    ret = max(ret, (r-l)*height[l]);
                    l++;
                }
                else
                {    
                    ret = max(ret, (r-l)*height[r]);
                    r--;
                }
            }
            return ret;
    }
};
复制代码

 

posted on   承续缘  阅读(129)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示