【感受算法魅力T05】北湖深坑
本文最后更新于 458 天前,其中的信息可能已经有所发展或是发生改变。

思路分享

对于本题,某一横坐标处存在积水的条件是该点位于两个比他更高的坐标之间,且该坐标处的积水高度等于其两侧的第二高的高度与该点高度之差

由此可见,我们只需要从左至右将所有点的积水高度相加即可。

解题步骤

要确定某一点是“制高点”还是“积水点”或其他点,我们需要知道该点两侧的高度信息。

我们可以声明两个数组,分别用于记录某一点(含该点)左侧以及右侧的最高点高度,这一部分可以通过简单的遍历实现。更进一步,其实我们不需要知道左侧以及右侧最高点的高度,我们也可以只开辟一个数组,用于记录该点两侧“第二高”点的高度即可,因为超过“第二高”点的所有位置都不会有积水。

接着,我们遍历所有点,并根据不同情况进行讨论:

1. 该点是“干旱点”,两侧中至少有一侧没有高于它的点:该点处无积水,直接忽略;

2. 该点是“积水点”,位于两个比它更高的点之间:该点处的积水高度为【两侧“第二高”的点高度 - 该点高度】。

将上述数据累加求和,即可得出蓄水体积。


欢迎通过E-mail:blog#drinkcat.com 与我进行交流。
关注我的微信订阅号:饮猫DrinkCat在BIT,即是对我最大的支持~


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇