zoukankan      html  css  js  c++  java
  • LeetCode 每日一题 (盛最多水的容器)

    
    
    // S = min(a, b) * (j - i) 
    // j-i一直变小! a,b里面 移动大的一边, min(a, b)可能变小或不变!
    移动小的一边, min(a, b)可能变小或变大!
    // 所以只需要 一直移动小的一边!
    class Solution {
    public:
        int maxArea(vector<int>& height) {
            int area = 0;
            if (height.size() == 0){
                return area;
            }    
    
            int j = height.size() -1;
            int i = 0;
    
            int a = height[i];
            int b = height[j];
            int s = 0;
            while(i < j){           
                if (a<b){
                    s = a *(j-i);
                    i++;                
                    a = height[i];
                }else{
                    s = b *(j-i);
                    j--;
                    b = height[j];
                }
                if (s>area){
                    area = s;
                }
            }
    
            return area;
        }
    };
  • 相关阅读:
    iView
    JS
    JS
    JS
    Java
    Java
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/lesten/p/14984267.html
Copyright © 2011-2022 走看看