zoukankan      html  css  js  c++  java
  • 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.

    思路:

    本题和之前的  trapping rain water 没有较大关系,只是单纯的询问我们两根线连起来会不会有最大值。

    所以思路就是双指针法,两边开始,以最小值高度为长,做乘积。谁小谁往里走。

    代码:

    class Solution {
    public:
        int maxArea(vector<int>& height) {
            int i=0,j=height.size()-1;
            // 1 2 3 4 5 
            int res=0,tem=0;
            while(i<=j){
                tem=(j-i)*min(height[i],height[j]);
                if(height[i]>height[j]){
                    j--;
                }else if(height[i]<height[j]){
                    i++;
                }else{
                    i++;j--;
                }
                res=max(res,tem);
            }
            return res;//
        }
    };


  • 相关阅读:
    TCP协议
    各相机品牌型号分类
    思科华为命令对比
    网工笔记(一)
    数学笔记
    word快捷键汇总
    请个假
    word笔记
    ScrollView不能到顶部的解决方法
    Gridview 显示成正方形
  • 原文地址:https://www.cnblogs.com/jsrgfjz/p/8519825.html
Copyright © 2011-2022 走看看