接雨滴

2023-11-03 23:30
文章标签 雨滴

本文主要是介绍接雨滴,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

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

在这里插入图片描述

示例

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

心路历程

做这道题还是费了很多时间,一开始自己的思路不正确。因为以为是先找到左边升序的最高点和右边升序的最高点然后取两者最小然后与中间夹得元素相减得到能够接雨水的值,结果一个实例把我这个想法直接给否了

输入:[5,1,2,1,5]

这样就根本不行,我想了很久的解决思路,觉得我自己一开始就想错了。然后自己就重新想解题思路。
然后就只能针对,每一个元素去寻找左右能达到的最高点,然后两者取最小的,然后再减去当前这个目标的高度,就是这一列能够盛水的量。

代码

class Solution {
public:int trap(vector<int>& height){if(height.size() == 0)return 0;int ans = 0;int size = height.size();vector<int> left_max(size), right_max(size);left_max[0] = height[0];for (int i = 1; i < size; i++){left_max[i] = max(height[i], left_max[i - 1]);}right_max[size - 1] = height[size - 1];for (int i = size - 2; i >= 0; i--){right_max[i] = max(height[i], right_max[i + 1]);}for (int i = 1; i < size - 1; i++){ans += min(left_max[i], right_max[i]) - height[i];}return ans;}
};

还有一种单调栈的解法我先看懂了,然后再把官方的代码贴上去

来源:力扣 42(LeetCode)
链接:https://leetcode-cn.com/problems/trapping-rain-water/

这篇关于接雨滴的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/341635

相关文章

雨滴,美丽的雨滴

原程序是别人的,我只是加了GIF录制。 # -*- coding: utf-8 -*-"""Created on Sat Jun 3 13:17:50 2017@author: jiangyl"""import numpy as npimport matplotlib.pyplot as pltfrom matplotlib import animation# New figu

【UE 材质】雨滴效果

在上一篇博客(【UE 材质】表面湿润效果)的基础上继续实现物体表面附加雨滴的效果  效果 步骤 1. 下载所需纹理 2. 创建一个材质并打开,添加如下节点,我们将纹理的RG通道输出的值和1组成一个三维向量,作为基本的法线效果 此时效果如下 调整RG两个通道的取值范围,由0~1改为-1~1,使得水滴的立体感更强一点 此时效果如下: 接下来制作水滴动画效果,添加

雨云服务器:让你的数据追随云端的雨滴

引言   当我们谈论服务器时,往往想到的是一堆冰冷的硬件,堆积如山的数据,以及令人头痛的维护问题。但是,今天我要向大家介绍的服务器却完全不同——那就是雨云服务器   什么是雨云服务器?   雨云服务器,听起来就像是来自仙境一般的名字,但实际上,它是一家致力于提供优质云端服务的公司。“让你的数据像雨滴一样自由流动”。想象一下,你的数据就像雨滴一样,随时随地,轻松自在地在云端飘荡,这种感觉

流动雨滴效果

<html><head><meta name="Generator" content="EditPlus" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>流动雨滴效果</title><style>body {overflow: hidden;background: black;}</

HTML5 canvas逼真的雨滴效果js插件

rainyday是一款基于 html5 canvas 的模拟下雨时雨滴打在玻璃窗上效果的js插件。该雨滴效果插件的特点是使用简单,易于集成。Rainyday.js是一个使用HTML5特性的纯js库,几乎所有的现代浏览器都支持它。 在线演示:http://www.htmleaf.com/Demo/201502061337.html 下载地址:http://www.htmleaf.com/

html怎么做下雨效果,HTML5 canvas制作逼真的下雨雨滴效果js插件

rainyday是一款基于 html5 canvas 的模拟下雨时雨滴打在玻璃窗上效果的js插件。该雨滴效果插件的特点是使用简单,易于集成。 使用方法 在页面中引入rainyday.js文件。 然后可以按照下面的方法调用插件。 var engine = new RainyDay({ image: element, // Image element // This value is require

【雨滴桌面】一个自己写的DOCK,可隐藏的侧边应用栏,包含天气显示、系统数据及8个*2页=16个应用栏位

YcDock2-Right6.5 雨滴桌面一个自己用的DOCK; 可隐藏的侧边应用栏,包含天气显示、系统数据及8个*2页=16个应用栏位 一、效果图 二、说明 1、应用路径全部单独编写,便于修改 ;----------------------------------------路径----------------------------[Variables]APP1=!execu

当文字成为雨滴:HTML、CSS、JS创作炫酷的“文字雨“动画!

简介 在本篇技术文章中,将介绍如何使用HTML、CSS和JavaScript创建一个独特而引人注目的"文字(字母&数字)"雨🌧️动画效果。通过该动画,展现出的是一系列随机字符将从云朵中下落像是将文字变成雨滴从天而降,营造出与众不同的视觉效果。 文字雨 HTML 创建一个基本的HTML结构,这段HTML代码定义了一个容器,其中包含了"云朵"和"雨滴"(即文字元素)。基本结构如下:

当文字成为雨滴:HTML、CSS、JS创作炫酷的“文字雨“动画!

简介 在本篇技术文章中,将介绍如何使用HTML、CSS和JavaScript创建一个独特而引人注目的"文字(字母&数字)"雨🌧️动画效果。通过该动画,展现出的是一系列随机字符将从云朵中下落像是将文字变成雨滴从天而降,营造出与众不同的视觉效果。 文字雨 HTML 创建一个基本的HTML结构,这段HTML代码定义了一个容器,其中包含了"云朵"和"雨滴"(即文字元素)。基本结构如下:

【华为OD题库-043】二维伞的雨滴效应-java

题目 普通的伞在二维平面世界中,左右两侧均有一条边,而两侧伞边最下面各有一个伞坠子,雨滴落到伞面,逐步流到伞坠处,会将伞坠的信息携带并落到地面,随着日积月累,地面会呈现伞坠的信息。 1、为了模拟伞状雨滴效应,用二叉树来模拟二维平面伞(如下图所示),现在输入一串正整数数组序列(不含0,数组成员至少是1个),若此数组序列是二叉搜索树的前序遍历的结果,那么请输出一个返回值1,否则输出0. 2、同时请