leetcode11_Container With Most Water
来源:互联网 发布:北京行知实验小学追随 编辑:程序博客网 时间:2024/06/01 13:25
一.问题描述
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.
Note: You may not slant the container.
二.代码编写
暴力解法(即两层循环)在list较大的情况下会TLE,对本题的优化必须舍弃不必要的计算避免TLE。
算法思想:当木桶的宽度缩小时,必须增加高度才能获得更大的木桶容量。也就是说当宽度缩小,而高度未增高的情况是不必要考虑的。所以我们从两端开始往中间寻找,这就涉及到另一个问题,移动两端的哪一条垂直线呢?设想一下,如果移动的是两根中较长的那根,那么容量必然不会增加(因为宽度在减小,同时最高高度不会超过较短的那根)。因为往中间移动时,我们应当移动较短的那根。
具体代码如下:
class Solution(object): def maxArea(self, height): """ :type height: List[int] :rtype: int """ #solutionA: with time complexity of O(N^2) -->TLE #solutionB: with time complexity of O(N) i=0 j=len(height)-1 max_con=min(height[i],height[j])*(j-i) while i<j: #移动高度较短的那根 if height[i]<height[j]: hei=height[i] i+=1 while i<j and height[i]<hei: i +=1 con=min(height[i],height[j])*(j-i) if con>max_con: max_con=con else: hei=height[j] j-=1 while j>i and height[j]<hei: j -=1 con=min(height[i],height[j])*(j-i) if con>max_con: max_con=con return max_con
0 0
- leetcode11_Container With Most Water
- Container With Most Water
- Container with most water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- Container With Most Water
- 面向对象设计七大原则
- static语句块和static方法
- c++学习历程(2)之 (把单位是码的长度(小数值)转化为码,英尺和英寸)
- Java 同步锁
- JS匿名函数理解
- leetcode11_Container With Most Water
- 基础排序总结(冒泡排序、选择排序、插入排序)
- chrome解决跨域(CORS)问题---chrome插件
- ActionBarDrawerToggle
- PagerSlidingTabStrip 标题添加小图标
- 三消游戏四消道具知识点
- Android动画原理分析
- pydot 安装 用于caffe画图
- Struts2_18_result小结