题解 | 农田最大产出评估
农田最大产出评估
https://www.nowcoder.com/practice/61e4efc13af342fe86718e68df6cf7f3
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int len = in.nextInt();//地块数量
int[] arr = new int[len];
for(int i = 0; i < len; i++){
arr[i] = in.nextInt();
}
System.out.println(method(arr));
}
}
private static int method(int[] arr){
int res = 0;
for(int i = 0; i < arr.length; i++){//遍历每个数组元素
int temp = method2(arr,i);
if(temp > res){
res = temp;
}
}
return res;
}
private static int method2(int[] arr, int index){//计算每个数组元素作为最小时对应的最大肥力
int left = index;
int right = index;
for(int i = index; i >= 0; i--){
if(arr[i] >= arr[index]){
left = i;
}
if(arr[i] < arr[index]){
break;
}
}
for(int i = index; i < arr.length; i++){
if(arr[i] >= arr[index]){
right = i;
}
if(arr[i] < arr[index]){
break;
}
}
return arr[index] *(right - left + 1);
}
}
