自我认为是盛最多水与最大面积是一样的道理
通过java的函数来进行计算
class Solution {
public int maxArea(int[] height) {
int maxarrea=0;
//ArrayList<Integer> result=new ArrayList<Integer>();
for (int i = 0; i <height.length-1 ; i++) {
for (int j = i+1; j < height.length; j++) {
//int heightReal = Math.min(height[i],height[j]);
// int wide=Math.abs(j-i);
// int area=Math.min(height[i],height[j])*(j-i);
maxarrea=Math.max(maxarrea,Math.min(height[i],height[j])*(j-i));
}
}
//Collections.sort(result);//针对一个ArrayList内部的数据排序
//Arrays.sort(result);//Arrays是util包数组排序
return maxarrea;
}
}
后因为并不是最优 我是把所有的注意遍历 后来想到我的代码是可以优化的 从单向遍历我可以改为双向遍历 因为可以从长最长与宽最长来进行考录有些没必要在进行比较 ,属于冗余行为 多余的操作 所以进行了一系列的优化
public class Solution {
public int maxArea(int[] height) {
int maxarea = 0, l = 0, r = height.length - 1;
while (l < r) {
maxarea = Math.max(maxarea, Math.min(height[l], height[r]) * (r - l));
if (height[l] < height[r])
l++;
else
r--;
}
return maxarea;
}
}
谢谢大家观看记得点个小心心 是我的动力谢谢