two pointers, 两头往中间走
public class Solution {
public int maxArea(int[] height) {
int max = 0;
int left = 0;
int right = height.length - 1;
while (left < right){
max = Math.max(max, (right-left)*Math.min(height[left], height[right]));
if (height[left] > height[right]) {
right--;
} else {
left++;
}
}
return max;
}
}

本文介绍了一个使用两指针技术的经典算法问题:给定一个整数数组表示高度,计算能盛放的最大水量。通过从两端向中间逼近的方式,逐步优化解的空间,最终找到最优解。
322

被折叠的 条评论
为什么被折叠?



