算法题目
在公元2919年,人类发现了一颗宜居星球——X星。现在要在X星一片连绵起伏的山脉间建造一个天然蓄水库,需要确定如何选取水库的边界,从而让蓄水量达到最大。
山脉的高度用一个正整数数组s
来表示,数组中的每个元素代表山脉相应位置的高度。选取山脉上的两个点作为蓄水库的边界,边界内的区域就可以用来蓄水,不过在计算蓄水量时要排除山脉本身占用的空间。蓄水量的高度由两边界高度的最小值决定。如果存在多个满足条件的边界组合,要选取距离最近的那一组边界。
最终需要输出边界的下标(下标从0开始)以及最大蓄水量;要是无法蓄水,就只返回0,此时不需要返回边界信息。
例如:
- 当山脉数组为
s=[3,1,2]
时,选取s[0]
和s[2]
作为水库边界,蓄水量为1,输出结果为:0 2:1
。 - 当山脉数组为
s=[3,2,1]
时,不存在合适的边界,输出结果为:0
。
输入要求:输入是一行正整数,各个数字之间用空格隔开,例如输入1 2 3
,就表示s=[1,2,3]