[Leetcode] Container With Most Water (Java)
2013-12-31 08:45
399 查看
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.
题意就是在坐标轴上找两条线x=l,x=r,使(r-l)*min(height[l],height[r])最大
从两边往中间找,不停找比当前线更长的线,计算面积大小,若比当前最大面积大,则更新,然后继续找,直到两边碰头
..., 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.
题意就是在坐标轴上找两条线x=l,x=r,使(r-l)*min(height[l],height[r])最大
从两边往中间找,不停找比当前线更长的线,计算面积大小,若比当前最大面积大,则更新,然后继续找,直到两边碰头
public class ContainerWithMostWater { public int maxArea(int[] height) { int lindex = 0; int rindex = height.length-1; int max = (rindex-lindex)*Math.min(height[lindex],height[rindex]); while(rindex>lindex) { if(height[lindex]<height[rindex]) { int k = lindex+1; while(height[k]<height[lindex]&&k<rindex) k++; lindex=k; }else { int k = rindex-1; while(height[k]<height[rindex]&&k>lindex) k--; rindex=k; } int temp = (rindex-lindex)*Math.min(height[rindex],height[lindex]); if(max<temp){ max=temp; } } return max; } public static void main(String[] args) { int[] height = {3,2,1,3}; System.out.println(new ContainerWithMostWater().maxArea(height)); } }
相关文章推荐
- Java JDK的安装以及CLASSPATH设置系统变量
- WebService开发实例(java代码)
- 获取JAVA[WEB]项目相关路径的几种方法
- [Java]如何把Soap Message装成一个String对象
- spring中packagesToScan的解释
- java.beans包的XMLEncoder和XMLDecoder实现实体与xml转换
- JAVA序列化与反序列化三种格式存取(默认格式、XML格式、JSON格式)
- Google Code Jam Notes - Meet And Party - Java
- 【Java.Web】Servlet —— Servlet(JavaWeb)的生命周期
- 【Java.Web】Servlet —— Servlet的类的体系结构
- 【Java.Web】Servlet —— Servlet容器的启动及Servlet创建及初始化,容器默认的Servlet
- 终于找到全annotation配置springMVC的方法了(事务不失效)
- Java知识总结-基础
- Java知识总结-基础
- 【Java基础】异常 断言
- struts+ireport中当datasource为空时,报表页面打印空白
- java 文件操作
- JAVA 考试准备笔记 5
- Mapr在java的开发指南(三)——GC在MAPR
- Mapr在java的开发指南(二)——包括maprfs-0.1.jar现在下落不明的依赖性和不链接