一、题目描述
公元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
补充说明
数组s满足:
1 <= length(s) <= 10000
0 <= s[i] <= 10000
该博客介绍了一个在宜居星球X星建设天然蓄水库的算法问题,通过Java解决。给定一个表示山脉高度的数组,目标是找到最大化蓄水量的边界,并考虑了边界距离。解题思路包括双指针遍历数组,寻找符合条件的边界并计算蓄水量。文章提供了详细的算法源码和效果展示。
订阅专栏 解锁全文
5402

被折叠的 条评论
为什么被折叠?



