首页 > 代码库 > LeetCode 11. Container With Most Water
LeetCode 11. Container With Most Water
O(n)的做法一开始没想出,看了别人的代码才理解的。
感觉自己又变弱了。。。
思路:
首先评估最宽的容器,使用第一行和最后一行。 所有其他可能的容器都不够宽,所以为了容纳更多的水,他们需要更高。 因此,在评估了最宽的容器后,跳过两端的不支持更高高度的线。 然后评估我们到达的新集装箱。 重复,直到没有更多可能的容器。
代码如下:
package Num11; public class Solution { public int maxArea(int[] height) { int left = 0, right = height.length - 1; int maxArea = 0; while (left < right) { int h = Math.min(height[left], height[right]); maxArea = Math.max(maxArea, h * (right - left)); while (height[left] <= h && left < right) left++; while (height[right] <= h && left < right) right--; } return maxArea; } }
LeetCode 11. Container With Most Water
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。