Leetcode 42 接雨水(棧解)

2021-09-27 18:34:01 字數 1066 閱讀 4391

題目描述

定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。

上面是由陣列 [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

思路分析

接雨水:第一種解法,點此了解

**如下c++

/*

name: 接雨水

author: 德林恩寶

date: 05/10/19 15:17

description: 如**

*/#include

#include

using namespace std;

#define maxsize 1000

stack<

int> stak;

intfunction

(int num,

int n)

stak.

push

( i )

;//入棧

}return sum;

//返回值

}int

main()

執行結果

c++中的stack棧的運用,其實蠻不錯的。

涉及到的各部分函式簡介:

宣告:stack stak;

push() 函式:將 val 值壓棧,使其成為棧頂的第乙個元素;

pop()函式:刪除棧頂元素,但不返回;

top()函式:返回棧頂元素但不刪除;

empty()函式:判斷是否為空;

leetcode42 接雨水 棧實現

public static int trap int height stackstack new stack 對陣列中每乙個元素遍歷 for int i 0 i height.length 1 i 取出的last和左右兩面牆的最低求差 x math.min height stack.peek hei...

leetcode 42 接雨水 單調棧

接雨水 給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 輸入 0,1,0,2,1...

LeetCode 42 接雨水 困難

給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 輸入 0,1,0,2,1,0,1...