LeetCode p11 Container With Most Water 题解
1.题目:
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.
题意:
给你一个数组代表从左到右木板的高度。
问 从中选两个木板出来,在他们现有的位置上可以装多少水。
2.解题思路:
注意:从i j 上选了木板可以储水的宽度j-i;
思路如下:先选取最宽的边长 头和尾。
如我们所知最大的体积及最大的高度和宽度的乘积。
高度为两个木板中的最短木板。
所以我们每次推进的木板应该是短的那个木板。
因为如果推进长的那个木板,留下短的那个木板,是无获得更大的数的。
也就是没有意义的。
所以此题的策略为,从头尾开始,每次选取最短的木板向内推进。
3.代码
1 |
|