给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

98,接雨水_for循环

上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。

示例:

输入: [0,1,0,2,1,0,1,3,2,1,2,1]
输出: 6

请关注微信公众号“数据结构和算法”,答案下期公布

上期的问题是:97,缺失的第一个正数

98,接雨水_数组_02

解析:

第一个for循环很好理解,就是把正数是几就放在数组的第几的位置,比如数组中的5,就把他放在数组的第5个位置,因为数组是从0开始的,所以需要放在array[4],同理对于任意一个大于1且小于数组长度的数字i都会放在数组array[i-1]的位置。后面的就很好理解了。

关注,点赞,评论,转发