[leetcode]11. Container With Most Water
来源:互联网 发布:巨星知我心 by凌豹姿 编辑:程序博客网 时间:2024/05/24 02:37
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.
解题思路:设置两个指针,起点分别为数组的头尾。当前的容量就是两个指针间的距离乘以两个之间较小的一个(木桶效应)。然后比较这两个指针对应的数,较小的一方向中间移动(无论谁向中间移动距离都会减小,所以舍弃小的那个)。
java代码
public class Solution { public int maxArea(int[] height) { int length = height.length; int left = 0; int right = height.length - 1; int max = 0; while(left < length && right > 0 && left < right){ int tmp = min(height[left], height[right]) * (right - left); if(tmp > max){ max = tmp; } if(height[left] < height[right]){ left++; } else{ right--; } } return max; } public int min(int a, int b){ return a > b ? b : a; }}
c代码
int maxArea(int* height, int heightSize) { int left = 0, right = heightSize - 1; int max = 0; while(left < right){ int tmp = 0; if(height[left] < height[right]){ tmp = (right - left) * height[left]; left++; } else{ tmp = (right - left) * height[right]; right --; } max = max < tmp ? tmp : max; } return max;}
go代码
func maxArea(height []int) int { var left int = 0 var right int = len(height)-1 var max=0 for{ if left>right{ break } var tmpHeight int if height[left]>height[right]{ tmpHeight = height[right] }else{ tmpHeight = height[left] } if max < (tmpHeight*(right-left)){ max=(tmpHeight*(right-left)) } if height[left]>height[right]{ right-- }else{ left++ } } return max}
0 0
- LeetCode 11. Container With Most Water
- [LeetCode]11.Container With Most Water
- LeetCode --- 11. Container With Most Water
- LeetCode 11.Container With Most Water
- [Leetcode] 11. Container With Most Water
- [leetcode] 11.Container With Most Water
- 【leetcode】11. Container With Most Water
- [LeetCode]11. Container With Most Water
- 11. Container With Most Water LeetCode
- leetcode 11. Container With Most Water
- leetcode 11.Container With Most Water
- [LeetCode OJ]11. Container With Most Water
- [leetcode] 11. Container With Most Water
- Leetcode 11. Container With Most Water
- leetcode 11.Container With Most Water
- leetcode 11. Container With Most Water
- LeetCode 11. Container With Most Water
- LeetCode *** 11. Container With Most Water
- poj1003
- @media:device-width、orientation
- 我的联系方式
- 关于广播接收者与服务
- PHP ajax传值给后台
- [leetcode]11. Container With Most Water
- 工具 | Tmux 命令备忘
- 博客旅程之始
- 【并行计算-CUDA开发】#pragma unroll伪编译指令的使用
- 415. Add Strings
- Linux设备模型——设备驱动模型和sysfs文件系统解读
- Eclipse安装Pydev插件
- 轻量级富文本(待优化)
- CodeForces 724E(Goods transportation 最小割)