zoukankan      html  css  js  c++  java
  • 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轴围起来的容器的最大容积。这里使用两个指针,从头尾两边向中间缩进。不断更新最值。

    代码:

    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;
        }
    };
    

      

  • 相关阅读:
    c traps and pitfalls reading note(1)
    比较好的进程篇总结(转)
    shell学习日志
    IPC--消息队列
    c进程学习日志
    c--socket通信TCP篇
    c语言文件操作总结
    c的面向对象思想记录
    c指针学习小结(参考别人总结的经验)
    vi 学习记录
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5583441.html
Copyright © 2011-2022 走看看