Leetcode11 Container With Most Water
Posted chason95
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode11 Container With Most Water相关的知识,希望对你有一定的参考价值。
首先想到的肯定是暴力解法,O(n^2)。
class Solution { public int maxArea(int[] height) { // int[][] dp = new int[height.length][height.length]; int max=0; for(int i=0;i<height.length-1;i++) { for(int j=i+1;j<height.length;j++) { // dp[i][j]=(j-i)*Math.min(height[i], height[j]); max = Math.max(max, (j-i)*Math.min(height[i], height[j])); } } return max; } }
421ms,8.51%,肯定不行,思考更优解法。
自己想到了two pointer,但是没有彻底想明白,看了solution后明白了。
class Solution { public int maxArea(int[] height) { int max=0,l=0,r=height.length-1; while(l<r) { max = Math.max(max, (r-l)*Math.min(height[l], height[r])); if(height[l]>height[r]) r--; else l++; } return max; } }
6ms,66.7%,O(n)。和3ms答案基本一个思路了,可以了。
以上是关于Leetcode11 Container With Most Water的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode11. Container With Most Water 解题报告
LeetCode?????????python?????????11. Container With Most Water
LeetCode 11. Container With Most Water
leetcode_11. Container With Most Water