首页 > 其他分享 >接雨水

接雨水

时间:2024-04-26 09:03:19浏览次数:10  
标签:right min waterHeight 雨水 height left

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

示例 1:

输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出:6
解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。
示例 2:

输入:height = [4,2,0,3,2,5]
输出:9

// 难度标的困难 不过很简单 不如三数之和
func trap(height []int) int {
	left, right := 0, len(height)-1
	count := 0
	waterHeight := 0
	for left < right {
		// 计算面积
		// (right - left) *
		if waterHeight-min(height[left], height[right]) > 0 {
			count += waterHeight - min(height[left], height[right])
		}
		waterHeight = max(min(height[left], height[right]), waterHeight)
		if height[left] > height[right] {
			right--
		} else {
			left++
		}
	}
	return count
}

标签:right,min,waterHeight,雨水,height,left
From: https://www.cnblogs.com/sunchenxuan/p/18159166

相关文章

  • 光学雨量计原理及其在城市雨水管理中的应用
    光学雨量计原理及其在城市雨水管理中的应用河北稳控科技光学雨量计是一种使用光学原理来测量雨量的仪器,它通过光束的传输,根据接收到的光信号的强度变化来确定雨滴的数量和大小,从而获得准确的降雨量数据。在城市雨水管理中,光学雨量计有着广泛的应用。一,光学雨量计的工作原理基于......
  • 力扣经典150题第十六题:接雨水
    目录力扣经典150题第十六题:接雨水1.题目描述2.问题分析3.解题思路4.代码实现5.时间复杂度分析6.应用和扩展7.总结8.参考资料力扣经典150题第十六题:接雨水1.题目描述给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少......
  • 7、双指针-接雨水
     按列求+辅助数组只关注每一列当前能够留下几滴雨水。0和末尾位置不用考虑,盛不了雨水。现在有个0<i<length-1位置,那么他能盛多少雨水呢?取决于左边最大值和右边最大值,Math.min(leftArr[i-1],rightArr[i+1])。再减去i位置的高度就是可以盛的雨水,如果本身高度大于左右边最......
  • leetcode-面试经典150题-42-接雨水(双指针c++)
    第一遍做的时候(没有看题解)我想到的思路就是遍历每一个凹下去的部分,计算能接到的雨水数量,然后累加,left,right分别是凹点的左右边界下面是代码:classSolution{public:inttrap(vector<int>&height){intn=height.size();intans=0;for(int......
  • 代码随想录算法训练营第五十九天 | 42. 接雨水,503下一个更大元素
    503.下一个更大元素II 已解答中等 相关标签相关企业 给定一个循环数组 nums ( nums[nums.length-1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的......
  • (59/60)下一个更大元素Ⅱ、接雨水
    终于接到你下一个更大元素Ⅱleetcode:496.下一个更大元素I单调栈思路主要是循环数组的处理。直接等效为长度为2N,重复两遍的原数组即可,i<nums.size()变为i<2*nums.size()、i变为i%nums.size()。代码实现对每个元素都再遍历一遍原数组长度,,,时间复杂度O(N^2),超时了clas......
  • ☆【前后缀】【双指针】Leetcode 42. 接雨水
    【前后缀】【双指针】Leetcode42.接雨水解法1前后缀分解解法2双指针---------------......
  • LeetCode题练习与总结:接雨水
    一、题目给定 n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例1:输入:height=[0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组[0,1,0,2,1,0,1,3,2,1,2,1]表示的高度图,在这种情况下,可以接6个单位的雨水(蓝色部分表示雨......
  • 接雨水 - LeetCode 热题 7
    大家好!我是曾续缘......
  • 代码随想录算法训练营第五九天 | 下一个更大元素II、接雨水
    目录下一个更大元素II接雨水LeetCode503.下一个更大元素IILeetCode42.接雨水下一个更大元素II给定一个循环数组nums(nums[nums.length-1]的下一个元素是nums[0]),返回nums中每个元素的下一个更大元素。数字x的下一个更大的元素是按数组遍历顺序,这......