• 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.

    直接BF方法,两个循环,时间复杂度为O(n^2).只能跑过小数据,大数据直接挂了

     1    public int maxArea(int[] height) {
     2         // Start typing your Java solution below
     3         // DO NOT write main() function
     4         int start = 0;
     5         int end = height.length - 1;
     6         int size = height.length;
     7         int max = 0;
     8         for(int i = 0; i < end; i++){
     9             for(int j = end; j > i; j--){
    10                 int container = Math.min(height[i], height[j]) * (j - i);
    11                 if(container > max)
    12                     max  = container;
    13             }
    14         }
    15         return max;
    16     }

     参考http://www.mitbbs.com/article_t/JobHunting/32184909.html

    本题可以有O(n)时间复杂度的解法,容器容量大小的短板在高度小的那侧,如果height[start] < height[end], 则如果想要是容量变大,唯一做法是使height[start]变大,则start++。height[start] < height[end]时同理使end--

     1 public int maxArea(int[] height) {
     2         int start = 0;
     3         int end = height.length - 1;
     4         int size = height.length;
     5         int max = 0;
     6         while(start < end){
     7             int container = Math.min(height[start], height[end]) * (end - start);
     8             if(max < container){
     9                 max = container;
    10             }
    11             
    12             if(height[start] > height[end]){
    13                 end --;
    14             } else {
    15                 start ++;
    16             }
    17         }
    18         
    19         return max;
    20     }
  • 相关阅读:
    python中的map,fliter,reduce用法
    python中的函数参数传递
    python中的全局变量和局部变量
    python中的函数定义
    python中的eval()和exec()函数
    kafka手动提交,丢失数据
    02-基本概念
    01-接触kafka
    (8)适配模式--结构性
    java内存划分
  • 原文地址:https://www.cnblogs.com/feiling/p/3159060.html
Copyright © 2020-2023  润新知