看到图,第一个想法是找最低的两个相等的柱子,计算两柱之间的体积,
减掉柱子之间无法容纳的体积,求得剩余面积
然后我在草稿上画了如下另外一张图,发现情况并不是这么简单:
8A9EEB3F935C82A255532087956B17A2.jpg
要分别计算各个区块的面积,然后减去无法容纳的体积,观察发现最高的
柱子,和左右两侧次高的柱子会形成一个装水的"池",次高的柱子又一次
向左向右与次次高的柱子形成一个"池",如果把最高的柱子当做根节点,
次高比做子节点,类似一个二叉树的广度优先遍历,依次计算最高到次
高,次高到次次高形成的"池子"面积,再减去不能容纳水的面积,就可以
得到最终可容纳的水滴数量
网友评论