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.

    利用贪心的思想,从头尾开始遍历,移动较矮的索引。基本原理是,一个索引low,一个索引high。装水的容量是由短板决定的,所以需要移动的是短板。

     1 class Solution{
     2 public:
     3     int maxArea(vector<int>& height){
     4         int max_area = 0x8fffffff;
     5         int low = 0;
     6         int high = height.size()-1;
     7         while(low<high){
     8             int temp = (high-low)*min(height[low],height[high]);
     9             if(max_area<temp)
    10                 max_area = temp;
    11             if(height[low]<height[high])
    12                 ++low;
    13             else
    14                 --high;
    15         }
    16         return max_area;
    17     }
    18 };
  • 相关阅读:
    Java
    HashMap数据结构与实现原理解析(干货)
    Java
    Java
    Java
    面向对象基础
    Java
    Java
    Java
    shell脚本
  • 原文地址:https://www.cnblogs.com/zhang-wen/p/4796800.html
Copyright © 2011-2022 走看看