zoukankan      html  css  js  c++  java
  • leetcode题解||Container With Most Water问题

    problem:

    Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai).
     n vertical lines are drawn such that the two endpoints of line i is at (i, ai) 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轴为底,两个纵轴为变,求容器的容积,短边是瓶颈。


    thinking:

    (1)短边决定水箱的有效高,底要尽可能的宽。

    (2)典型的双指针求解的题型。

    (3)贪心的策略,哪条边短,往里收缩寻找下一条边。

    code:

    class Solution {
    public:
        int maxArea(vector<int> &height) {
            // Start typing your C/C++ solution below
            // DO NOT write int main() function
            int i = 0;
            int j = height.size() - 1;
            
            int ret = 0;
            while(i < j)
            {
                int area = (j - i) * min(height[i], height[j]);
                ret = max(ret, area);
                
                if (height[i] <= height[j])
                    i++;
                else
                    j--;
            }
            
            return ret;
        }
    };

    时间复杂度为O(n)



    暴力破解法:时间复杂度为O(n*n)

    int area(vector<int>::iterator &a,vector<int>::iterator &b)
    {
        return (b-a)*(*a>*b?*b:*a);
    
    }
    
    class Solution {
    public:
        int maxArea(vector<int> &height) {
            int max_area=0;
            for(vector<int>::iterator i=height.begin()+1;i!=height.end();i++)
            {
                for(vector<int>::iterator j=height.begin();j!=i;j++)
                {
                    max_area=max(max_area,area(j,i));
                }
            }
            return max_area;
    
    
        }
    };


  • 相关阅读:
    Linux任务前后台的切换
    如何给html元素的onclick事件传递参数即如何获取html标签的data
    关键词多空格处理
    tp3常量
    php 正则判断是否是手机号码
    thinkphp 初始化
    删除图标
    time() 在thinkphp 3.2.3 模板格式化输出
    iOS工程如何支持64-bit
    调试instruments
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6863733.html
Copyright © 2011-2022 走看看