【华为OD机试真题】水库蓄水问题(天然蓄水库)(java&python)

天然蓄水库

知识点双指针9时间限制:1s空间限制:256MB限定语言:不限

题目描述:

描述:

公元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]

输出描述:

当存在合理的水库边界时,输出左边界、空格、右边界、英文冒号、蓄水量;例如 0 2:1
当不存在合理的书库边界时,输出0;例如
0

<

你可能感兴趣的:(华为机试,华为OD,python,java,算法)