双指针对撞 降低时间复杂度从 n^2 降到n
使用贪心算法 进一步提高效率
class Solution {
public int mins(int i, int j){
if(i>j) return j;
return i;
}
public int maxArea(int[] height) {
//读懂题意 本题本意 找出两个点 相距的距离
//复杂度是n^2
//看到题解后 我有了新的思路 但是我不能理解这是贪心 可能我不够贪心吧
int max = 0;
//两边同时向前 直至相遇为止 QUESTION 贪心算法的原因
int i = 0;
int temp;
int j = height.length-1;
while(i != j){
temp = mins(height[i],height[j])*(j-i);
if(temp > max){
max = temp;
}
if(height[i]<height[j]){
i++;
}else{
j--;
}
}
return max;
}
}