華為OD機試-水庫蓄水問題
公元2919年,人類終于發(fā)現(xiàn)了一顆宜居星球——X星。
現(xiàn)想在X星一片連綿起伏的山脈間建一個天熱蓄水庫,如何選取水庫邊界,使蓄水量最大?
要求:
? ? ? ? 山脈用正整數(shù)數(shù)組s表示,每個元素代表山脈的高度。
? ? ? ? 選取山脈上兩個點作為蓄水庫的邊界,則邊界內(nèi)的區(qū)域可以蓄水,蓄水量需排除山脈占用的空間
? ? ? ? 蓄水量的高度為兩邊界的最小值。
? ? ? ? 如果出現(xiàn)多個滿足條件的邊界,應(yīng)選取距離最近的一組邊界。
輸出邊界下標(從0開始)和最大蓄水量;如果無法蓄水,則返回0,此時不返回邊界。
例如,當山脈為s=[3,1,2]時,則選取s[0]和s[2]作為水庫邊界,則蓄水量為1,此時輸出:0 2:1
當山脈s=[3,2,1]時,不存在合理的邊界,此時輸出:0。
給定一個長度為 n 的整數(shù)數(shù)組 height 。數(shù)組的元素表示山的高度,選擇兩個元素作為水庫的邊界,求蓄水量的最大值并輸出蓄水量最大時的邊界下標(蓄水量相同時輸出下標較近的)。
輸入描述:
輸入一行數(shù)字,空格分隔。
輸出描述:
輸出蓄水量的最大值及輸出蓄水量最大時的邊界下標
示例1:
輸入:
1 8 6 2 5 4 8 3 7?
輸出:
1 6:15
說明:蓄水量的最大值為15
蓄水量最大時的邊界下標為1 和 6
————————————————
版權(quán)聲明:本文為CSDN博主「MISAYAONE」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://renjie.blog.csdn.net/article/details/128441418
Java 實現(xiàn):https://renjie.blog.csdn.net/article/details/128441437
Python實現(xiàn):https://renjie.blog.csdn.net/article/details/128441407
C++ 實現(xiàn):https://renjie.blog.csdn.net/article/details/128441418
JavaScript實現(xiàn):https://renjie.blog.csdn.net/article/details/129046811
C實現(xiàn):https://renjie.blog.csdn.net/article/details/129190672