//双指针法
//由于面积取决于边长短的那一端假设为m,所以要想得到比当前更大的面积,边长短的那一端必须舍弃,因为如果不舍弃,高最大就是m,而随着指针的移动宽会一直减小,因此面积只会越来越小。
class Solution {
public int maxArea(int[] height) {
int i = 0, j = height.length - 1, result = 0;
//谁短就往中心走一步
while (i < j) {
result = height[i] < height[j] ? Math.max(result, (j - i) * height[i++]) : Math.max(result, (j - i) * height[j--]);
}
return result;
}
}
leetcode11. 盛最多水的容器
最新推荐文章于 2024-09-13 09:57:49 发布