给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
上面是由数组 [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,缺失的第一个正数
解析:
第一个for循环很好理解,就是把正数是几就放在数组的第几的位置,比如数组中的5,就把他放在数组的第5个位置,因为数组是从0开始的,所以需要放在array[4],同理对于任意一个大于1且小于数组长度的数字i都会放在数组array[i-1]的位置。后面的就很好理解了。
关注,点赞,评论,转发