演算法 摩天大樓問題

2021-10-04 09:16:05 字數 962 閱讀 7146

看一下題目描述:

小q在週末的時候和他的小夥伴來到大城市逛街,一條步行街上有很多高樓,共有n座高樓排成一行。

小q從第一棟一直走到了最後一棟,小q從來沒有看到過這麼多高樓,所以他想知道他在每棟樓的位置處能看到多少棟樓呢?(當前面的樓的高度大於等於後面的樓時,後面的樓將被擋住)

暴力求解的方式比較簡單,就是選定乙個點,左右各乙個指標,尋找到自己能看到的點進行統計即可,不過這樣做時間複雜度有點高,題目要求是10000/座樓,顯然暴力解會超時,另一種做法是使用單調棧,這樣看過的樓就不必再去遍歷了。

1、維護乙個從左到右看的單調棧和乙個從右到左看的單調棧。

2、維護單調棧對應的陣列,儲存單調棧到陣列位置的大小,也就是能看到的大樓數量

3、合併兩個陣列,在對應位置+1(本樓也看得到)

public

static

void

main

(string[

] args)

helper

(nums);}

public

static

void

helper

(int

height)

else

if(height[i]

peek()

)else

rightstack.

push

(height[i]);

}}//從右往左看

for(

int i=

0;i)else

if(height[i]

peek()

)else

rightstack.

push

(height[i]);

}}for(

int i=

0;i)for

(int i=

0;i)}

生活就像是一幢摩天大樓

source 生活 就像是一幢摩天大樓,我們每個人都要從最底層開始,一層層向上爬。那些有天賦的人也同樣如此。大樓的每一層都被分成了兩個完全不同的區域 有朋友 床 電視 派對和遊戲組成的娛樂區 被工作間和辦公桌佔滿了的工作區。大樓有電梯間,當其中乙個電梯門開啟時,所有人都本能地跳起來向電梯衝去,很快地...

小浣熊爬摩天大樓怎麼回事?網友直播3小時全程關注

程式設計驛站 www.cppcns.com 注 近日,乙隻小浣熊徒手爬摩天大樓的 在社交網路上瘋傳,當地 還直播 3 小時全程關注它爬樓的動態。為這是怎麼回事呢?據了解,6 月 12 日,在美國明尼蘇達州因為大廈的窗戶被全部封死,救援一直難以施展。乙隻小浣熊花了近 20 個小時徒手nlfrasnnj...

小浣熊爬摩天大樓怎麼火的?小浣熊爬25層樓詳細經過

近日,美國明尼蘇達州乙隻爬摩天大樓的小浣熊在網上迅速躥紅。這只小浣熊歷時兩天,終於爬上了一座 24 層高的瑞士銀行大樓程式設計客棧。當地 為它直播三小時,銀河護衛隊 的導演james gunn發推特稱要捐出 1000 美金獎勵救下這只小浣程式設計客棧熊的人。6 月 11 日中午,美國明尼蘇達州當地市...