本題思路,每次遇到乙個左邊就加入陣列,遇到右邊就出陣列,每次記錄當前最大的高度,如果最大高度變化,天際線位置也要隨著改變。我沒有找到合適的資料結構去記錄這一變化,用vector每次修改的複雜度是o(n),肯定會超時,後來看到網上有用到multiset,之前沒用過,其實這就是允許有重複元素的set,這樣問題就好解決了。
class solution
vectortmp=;
multisetheight=;
for(auto & t:all)
}return ans;
}};
Leetcode218 天際線問題 掃瞄線
如圖,假設有一條線從左往右掃瞄陣列 1 遇到左端點,則記錄當前x座標下的最大高度 2 遇到右端點,則記錄當前x座標下的最大高度 很明顯,我們可以採用大頂堆來儲存座標為x時,當前建築的高度h x 遇到左端點則把高度入堆,當前堆頂元素即為x處最大高度 遇到右端點,則把對應建築的左端點出堆,此時堆頂同樣是...
218 天際線問題
城市的天際線是從遠處 該城市中所有建築物形成的輪廓的外部輪廓。現在,假設您獲得了城市風光 圖a 上顯示的所有建築物的位置和高度,請編寫乙個程式以輸出由這些建築物形成的天際線 圖b 每個建築物的幾何資訊用三元組 li,ri,hi 表示,其中li和ri分別是第 i 座建築物左右邊緣的 x 座標,hi是其...
multiset pair 218 天際線問題
城市的天際線是從遠處 該城市中所有建築物形成的輪廓的外部輪廓。現在,假設您獲得了城市風光 圖a 上顯示的所有建築物的位置和高度,請編寫乙個程式以輸出由這些建築物形成的天際線 圖b 每個建築物的幾何資訊用三元組 li,ri,hi 表示,其中 li 和 ri 分別是第 i 座建築物左右邊緣的 x 座標,...