【求助】求一道题
查看原帖
【求助】求一道题
315991
HairlessVillager楼主2020/9/6 16:41

求一道题,题目是这样的:

给你一个数字 N 和 N 个数字,求 “ 区间最小值 * 区间宽 ”

比如对于以下输入

5
3 4 5 6 7

的输出是

16

因为在所有区间中,[2, 5]是符合要求的,最小值是4,宽度是4

暴力代码:

#include <cstdio>
#include <cstdlib>
#define MAX	10000

int N;
int boards[MAX];

int find(){
	int max_area = -MAX;
	for(int i = 0; i < N; i++){
		int min_board = boards[i];
		for(int j = i; j < N; j++){
			if(boards[j] < min_board){
				min_board = boards[j];
			}
			if(min_board * (j - i + 1) > max_area){
				max_area = min_board * (j - i + 1);
			}
		}
	}
	return max_area;
}

int main(){
	freopen("in.txt", "r", stdin);
	scanf("%d", &N);
	for(int i = 0; i < N; i++){
		scanf("%d", &(boards[i]));
	}
	printf("%d\n", find());
	return 0;
}

听说 lg 上有这题,请问大家有见过这题吗?

2020/9/6 16:41
加载中...