当青训营遇上码上掘金之攒青豆
第五届青训营的上课时间已经结束,收获满满,趁着进入大项目之前,完成一下自己的主题创造活动的文章。今天我选取的主题是攒青豆,那么选择这个主题的原因,完全是因为觉得这个主题比较有趣,那么废话不多说,开始进入考虑如何从思路及后续的代码上思考如何攒青豆。
首先康康主题的需求:
现有 n 个宽度为 1 的柱子,给出 n 个非负整数依次表示柱子的高度,排列后如下图所示,此时均匀从上空向下撒青豆,计算按此排列的柱子能接住多少青豆。(不考虑边角堆积)
解析需求:提示了有n个宽度为单位的柱子,所谓的柱子,就类似于坐标系里的每个位置上的柱形图,各个柱子的高矮间隙形成一个个空间,继而计算出围成的空间即可计算出能够接多少个单位空间的青豆
思路:首先把下标的每个位置看成数组,而数组中存放数值,每个位置的数值即是相应的高度,对于计算某个位置的空间,只要获取左边最高的柱子及右边最高的柱子,并且遍历每一个位置可存放的青豆数,总和即可算出相应的青豆空间