博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LintCode] Container With Most Water
阅读量:6682 次
发布时间:2019-06-25

本文共 893 字,大约阅读时间需要 2 分钟。

Problem

Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

Example

Given [1,3,2], the max area of the container is 2.

Note

X轴上两指针的距离right - left为矩形长;

Y轴取两个指针所指的较短边:
Math.min(heights[left], heights[right])作为宽,相乘所得max为最大装水容量。将两指针向中间移动,更新max的最大值。

参考:

Solution

public class Solution {    public int maxArea(int[] heights) {        // write your code here        int left = 0, right = heights.length - 1, max = 0;        while (left < right) {            max = Math.max(max, Math.min(heights[left], heights[right]) * (right - left));            if (heights[left] < heights[right]) left++;            else right--;        }        return max;    }}

转载地址:http://dvaao.baihongyu.com/

你可能感兴趣的文章
ASP.WEB Form 几点知识
查看>>
xmlrpc
查看>>
[转] 钉钉的H5性能优化方案
查看>>
Bash 如何取得当前正在执行的脚本的绝对路径?
查看>>
day1作业--登录接口
查看>>
python基础之函数基础
查看>>
计算机软件基础-(软件开发过程管理)
查看>>
正则表达式匹配非需要匹配的字符串(标题自己都绕晕了)
查看>>
今天Rails都学到了啥
查看>>
nrm使用webpack使用
查看>>
OC 线程操作 - GCD队列组
查看>>
利用百度地图前端实现矢量县区地图下载(json)
查看>>
平衡树(树的直径)
查看>>
TextView改变颜色
查看>>
Linux环境下段错误的产生原因及调试方法小结
查看>>
[BZOJ 1502][NOI2005]月下柠檬树(自适应Simpson积分)
查看>>
initialize方法与load方法比较
查看>>
一致性hash算法及其java实现
查看>>
Arraylist和linkedlist的区别(JDK源码阅读)
查看>>
PHP常见的加密技术
查看>>