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

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

No.11, 

这道题目在坐标轴中给出了若干平行于y轴的竖线,每两个搭配加上x轴组成一个盛水的容器,找出容量最大的容器。

最暴力的方法还是两重循环算,这不在我们讨论范围内。

这里采用贪心算法实现,在该题中有一个规律,如果说最终的结果是ij两个竖线组成的容器最大(假设i<j),那么在i的左边肯定没有比i更高的线,j的右边肯定没有比j更高的线(因为一旦存在,那肯定更高的线组成的容器容量大,它不光墙壁高,x轴占得宽度也大)。那么我们只需要从两头开始遍历,设左右下标为i和j,如果i比j高,那么j--,否则i++。(可以这样设想,由于我们是贪心算法,如果遇到i比j低的情况,j的来源也是由于它比某个i左边的低才会移动到j现在的位置,那么既然i的左边存在比i高的,肯定是那条线和j组成的容器更大,所以i直接被忽略即可)。

public class Solution {    public int maxArea(int[] height) {        int max=0;        int i=0,j=height.length-1;        while(i

 

转载于:https://www.cnblogs.com/lilylee/p/5220347.html

你可能感兴趣的文章
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>
第五篇:白话tornado源码之褪去模板的外衣
查看>>
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
MockObject
查看>>
BZOJ4516: [Sdoi2016]生成魔咒(后缀自动机)
查看>>
查看手机已经记住的WIFI密码
查看>>
最新版IntelliJ IDEA2019 破解教程(2019.08.07-情人节更新)
查看>>
C# 两个datatable中的数据快速比较返回交集或差集
查看>>
关于oracle样例数据库emp、dept、salgrade的mysql脚本复杂查询分析
查看>>
adb shell am 的用法
查看>>
iOS10 UI教程视图和子视图的可见性
查看>>
FindChildControl与FindComponent
查看>>
中国城市json
查看>>
android下载手动下载Android SDK
查看>>
C++学习:任意合法状态下汉诺塔的移动(原创)
查看>>
leetcode133 - Clone Graph - medium
查看>>
UNET学习笔记2 - 高级API(HLAPI)
查看>>
"ORA-00942: 表或视图不存在 "的原因和解决方法[转]
查看>>