1、タイトル
2.ソリューション
2.1暴力行為
列挙されたすべての可能性、及び計算値の点と終了点を開始し、最大値を見つけること。
ルール計算:Math.min(開始、終了)*(JI);
class Solution {
public int maxArea(int[] height) {
int len = height.length;
int maxVal = 0;
for (int i = 0; i < len; i++)
for (int j = i + 1; j < len; j++) {
maxVal = Math.max(maxVal, Math.min(height[i], height[j]) * (j - i));
}
return maxVal;
}
}
O(N ^ 2)()N *(N-1/2から算出)、O(1)の空間的な複雑さの時間複雑
指2.2ペア
幅が十分な長さであることを保証するために十分な長さMINVAL *(JI)、十分な長さの長さを確保するために、だけでなく、幅が十分な長さであることを確実にするためだけでなく、その両側からあなたのダブルポインタを使用ので、(JI)を数え、小さい側のその後、幅幅側の大きな動きに起因します。
class Solution {
public int maxArea(int[] height) {
int i = 0, j = height.length - 1, maxVal = 0;
// 至少两条
while (j > i) {
maxVal = Math.max(maxVal, Math.min(height[i], height[j]) * (j - i));
if (height[i] > height[j]) {
--j;
} else {
++i;
}
}
return maxVal;
}
}
O(N)の時間計算量は、空間的複雑度はO(1)