看一下題目描述:
小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 日中午,美國明尼蘇達州當地市...