题目
原题链接:https://leetcode.cn/problems/trapping-rain-water
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。
思路
- 暴力解法:
不断循环,找到height[1,i-1] height[i+1,height.length-2] 两者之间的较小值
复杂度:时间复杂度O(n²) 空间复杂度O(1)
- 双指针解法:
准备双指针,分别指向数组首尾元素,代表最初的两个边界;指针往中间遍历,遇到更低柱子就是底,用较短的边界减去底就是 这一列的接水量,遇到更高的柱子就是新的边界,更新边界大小
复杂度: 时间复杂度O(n²) 空间复杂度O(1)
代码
- 暴力解法
class Solution {
public int trap(int[] height) {
// 暴力方法 两边最大值的 取较小值
int result=0;
for(int i=1;i<height.length-1;i
文章评论