题目要求: 计算存水量
题目难度: 难
解题思路
1. 从左向右和从右向左遍历
2. 左边设置一个隐形的bar,右边设置一个隐形的bar,都为0
3. 如果左边的高度小于右边的高度,比较左边的高度和隐形的bar的高度,将大的值设置为隐形的bar的高度
随着指针的移动,储水量为隐形的bar的高度-当前的高度,(前提条件为,右边的高度大于左边的隐形的bar的高度)
4.右边同理,更新储水量的值。
算法复杂度:
时间复杂度:O(N)
空间复杂度:O(1)
代码:
题目要求: 计算存水量
题目难度: 难
解题思路
1. 从左向右和从右向左遍历
2. 左边设置一个隐形的bar,右边设置一个隐形的bar,都为0
3. 如果左边的高度小于右边的高度,比较左边的高度和隐形的bar的高度,将大的值设置为隐形的bar的高度
随着指针的移动,储水量为隐形的bar的高度-当前的高度,(前提条件为,右边的高度大于左边的隐形的bar的高度)
4.右边同理,更新储水量的值。
算法复杂度:
时间复杂度:O(N)
空间复杂度:O(1)
代码: