Leetcode题目:Container With Most Water

题目:

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.

题目解答:

  题目中要求得两个纵轴与x轴围起来的容器的最大容积。这里使用两个指针,从头尾两边向中间缩进。不断更新最值。

代码:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Solution {
public:
    int maxArea(vector<int>& height) {
        vector<int>::iterator vleft = height.begin();
        vector<int>::iterator vright = height.end() - 1;
        int res = 0;
        while(vleft != vright)
        {
           // cout << "leftv" <<*vleft <<endl;
            //cout << "rightv"<<*vright <<endl;
            //cout << "minus" << (vright - vleft) << endl;
            res = max(res, min(*vleft, *vright) * (vright - vleft) );
            //cout << "res" << res << endl;
             
            if(*vleft < *vright)
            {
                vector<int>::iterator tmp = vleft;
                while( (tmp != vright) && (*tmp <= *vleft) )
                {
                    tmp++;
                }
                vleft = tmp;
            }
            else
            {
                vector<int>::iterator tmp = vright;
                while( (tmp != vleft) && (*tmp <= *vright) )
                {
                    tmp--;
                }
                vright = tmp;
            }
        }
        return res;
    }
    int max(int a,int b)
    {
        return a > b ? a : b;
    }
     
    int min(int a,int b)
    {
        return a < b ? a : b;
    }
};

  

posted @   CodingGirl121  阅读(91)  评论(0编辑  收藏  举报
编辑推荐:
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· 开发的设计和重构,为开发效率服务
· C# - 获取枚举描述 - 使用增量源生成器
点击右上角即可分享
微信分享提示