✨ 最大水池容量
parent
990d5e6aa7
commit
0bdb7eb042
@ -0,0 +1,54 @@
|
||||
|
||||
package org.alis.algorithm.leetcode;
|
||||
|
||||
public class Leetcode19 {
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
int[] array = new int[]{1, 8, 6, 2, 5, 4, 8, 3, 7};
|
||||
System.out.println(iterator(array));
|
||||
}
|
||||
|
||||
|
||||
public int area(int[] array) {
|
||||
int maxValue = 0;
|
||||
int right = array.length - 1;
|
||||
int left = 0;
|
||||
int l = 0;
|
||||
int r = right;
|
||||
while (right > left) {
|
||||
int len = Math.min(array[left], array[right]);
|
||||
int area = len * (right - left);
|
||||
if (maxValue < area) {
|
||||
maxValue = area;
|
||||
r = right;
|
||||
l = left;
|
||||
}
|
||||
left++;
|
||||
}
|
||||
System.out.printf("left: %d right: %d\n", l, r);
|
||||
return maxValue;
|
||||
}
|
||||
|
||||
|
||||
public int iterator(int[] array) {
|
||||
int maxValue = 0;
|
||||
int left = 0;
|
||||
int right = 0;
|
||||
for (int i = 0; i < array.length - 1; i++) {
|
||||
for (int j = array.length - 1; j > i; j--) {
|
||||
int area = Math.min(array[j], array[i]) * (j - i);
|
||||
if (maxValue < area) {
|
||||
maxValue = area;
|
||||
left = i;
|
||||
right = j;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
System.out.printf("left: %d right: %d\n", left, right);
|
||||
return maxValue;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue