zoukankan      html  css  js  c++  java
  • [LeetCode] 11. Container With Most Water

    传送门

    Description

    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 and n is at least 2.

    思路

    题意:给出一些垂直于 x 轴的线段,求取两条线段与 x 轴围成的区域的最大面积

    题解:区域宽度最大值即为前后两个终端的线段的距离,因此从前后两个终端线段向中间推进,更新区域面积的最大值。推进的策略是,下一轮前进的一方终端线段为这一轮中线段最短的那方,可以知道,依据这种策略的推进可以找到区域面积最大值,因为假定推进的一方为这一轮线段中的最大值,那么在下一轮中宽度小于上一轮的宽度,而高度依然小于上一轮线段的高度(高度取两条线段高度的最小值),因此所求的面积必然小于上一轮求得的区域面积。

    class Solution {
        //10ms
        public int maxArea(int[] height) {
            int len = height.length;
            int left = 0,right = len - 1;
            int h,area,max = 0;
            while (left < right){
                h = min(height[left],height[right]);
                area = max(area,h * (right - left));
    
                if (height[left] == h)  left++;
                if (height[right] == h) right--;
            }
            return area;
        }
    }
    

      

  • 相关阅读:
    表达式目录树(Expression)
    六大设计原则【单一职责】【里氏替换】【 迪米特法则】【依赖倒置原则】【接口隔离原则】【开闭原则】
    lambda,linq
    c#中的特性Attribute
    CentOS7部署Nginx
    NetCore项目的部署
    ABP+NetCore+Vue.js实现增删改查
    Abp数据库迁移注意事项
    MVC分页
    AspNet5 Changes to [Activate] in beta-5
  • 原文地址:https://www.cnblogs.com/ZhaoxiCheung/p/8143755.html
Copyright © 2011-2022 走看看