日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 218. 天际线问题(multiset优先队列)*

發布時間:2024/7/5 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 218. 天际线问题(multiset优先队列)* 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

城市的天際線是從遠處觀看該城市中所有建筑物形成的輪廓的外部輪廓。
現在,假設您獲得了城市風光照片(圖A)上顯示的所有建筑物的位置和高度,請編寫一個程序以輸出由這些建筑物形成的天際線(圖B)。

每個建筑物的幾何信息用三元組 [Li,Ri,Hi] 表示,其中 Li 和 Ri 分別是第 i 座建筑物左右邊緣的 x 坐標,Hi 是其高度。
可以保證 0 ≤ Li, Ri ≤ INT_MAX, 0 < Hi ≤ INT_MAX 和 Ri - Li > 0。
您可以假設所有建筑物都是在絕對平坦且高度為 0 的表面上的完美矩形。

例如,圖A中所有建筑物的尺寸記錄為:[ [2 9 10], [3 7 15], [5 12 12], [15 20 10], [19 24 8] ] 。

輸出是以 [ [x1,y1], [x2, y2], [x3, y3], ... ] 格式的“關鍵點”(圖B中的紅點)的列表,它們唯一地定義了天際線。
關鍵點是水平線段的左端點。請注意,最右側建筑物的最后一個關鍵點僅用于標記天際線的終點,并始終為零高度。
此外,任何兩個相鄰建筑物之間的地面都應被視為天際線輪廓的一部分。

例如,圖B中的天際線應該表示為:[ [2 10], [3 15], [7 12], [12 0], [15 10], [20 8], [24, 0] ]。

說明:
任何輸入列表中的建筑物數量保證在 [0, 10000] 范圍內。
輸入列表已經按左 x 坐標 Li 進行升序排列。
輸出列表必須按 x 位排序。
輸出天際線中不得有連續的相同高度的水平線。
例如 […[2 3], [4 5], [7 5], [11 5], [12 7]…] 是不正確的答案;
三條高度為 5 的線應該在最終輸出中合并為一個:[…[2 3], [4 5], [12 7], …]

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/the-skyline-problem
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 參考題解區Allen大佬
  • 把建筑物左右頂點分開計算,左頂點高度用負數區分
  • 把所有頂點插入multiset,開辟另一個高度h的multiset,含初始元素 0
  • 遍歷所有的頂點,是左頂點則插入該點的 hi,右頂點從 h 中刪除 hi
  • 讀取最大的hi,如果跟上次的不一樣,視為拐點,寫入答案
class Solution { public:vector<vector<int>> getSkyline(vector<vector<int>>& buildings) {vector<vector<int>> ans;if(buildings.size() == 0) return ans;multiset<vector<int>> corner;multiset<int> h;h.insert(0);//有空隙的時候方便處理//把建筑物分為上面左右兩個頂點for(auto& bd : buildings){corner.insert({bd[0], -bd[2]});//左邊高度取負號區分corner.insert({bd[1], bd[2]});}//multiset自動按第一個元素排序,相同按第二個vector<int> prev(2,0);//前一個拐角for(auto& cn : corner){if(cn[1] < 0)//左端點,插入h.insert(-cn[1]);elseh.erase(h.find(cn[1]));//右端點刪除int maxh = *h.rbegin();if(maxh != prev[1])//高度不相等,遇到拐角{prev[0] = cn[0];prev[1] = maxh;ans.push_back(prev);}}return ans;} };

128 ms 16.4 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的LeetCode 218. 天际线问题(multiset优先队列)*的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一级视频免费 | 久久国产视频精品 | 国产精品久久久久久久免费 | 91夫妻视频| 综合色播| 天堂av成人| 午夜免费剧场 | 亚洲福利午夜 | 另类视频在线观看 | 亚洲 欧美 激情 小说 另类 | 91成人福利视频 | 中文字幕超清在线观看 | 亚洲最大福利视频 | 人人看人人插 | 色超碰 | 美女作爱网站 | 国产精品国产三级国产专播精品人 | 欧美暧暧视频 | 中文在线播放 | 国产精品久久久久久久久免费看 | 爱爱免费小视频 | 国产黑人 | 在线a | 亚洲AV成人无码精品久久盆瓶 | 久久五月视频 | 欧美黄色免费网站 | 中文字幕人妻丝袜乱一区三区 | 91丝袜视频 | 国产成人精品午夜福利Av免费 | 欧美日韩免费观看视频 | 中文字幕一区二区三区四区免费看 | av福利网址 | yjizz国产| 一本一道久久a久久 | 日韩经典av | 少女忠诚电影高清免费 | 国产一级二级毛片 | 日韩在线第一 | 激情视频网站 | 精品日韩在线播放 | 一区二区三区免费网站 | 亚洲无码精品一区二区三区 | www.伊人| 97人妻一区二区精品免费视频 | 日韩欧美精品国产 | 操碰视频在线 | 又色又爽又黄gif动态图 | xxxwww在线观看 | 丝袜高跟av| 国产美女精品久久 | 99er在线| 国产日韩欧美在线观看 | 中文精品无码中文字幕无码专区 | 中文字幕在线官网 | 激情综合图区 | 99精品久久久久久久婷婷 | 国产精品人人爽人人爽 | 国产乱妇无码大片在线观看 | 好吊色视频在线观看 | 国产高清一区二区三区 | 伊人精品视频在线观看 | 337p日本大胆噜噜噜鲁 | 亚洲一区二区乱码 | 好爽快一点高潮了 | 欧美少妇在线 | 少妇xxxx| 国产精品无码一区二区三区三 | 交做爰xxxⅹ性爽 | 韩日精品在线观看 | 精品久久久影院 | 精品国产乱码久久久久久蜜臀网站 | 热热99| 警察高h荡肉呻吟男男 | 激情草逼 | 四虎免费久久 | eeuss一区二区三区 | 色偷偷伊人 | 999精品在线观看 | 国产97色在线 | 韩国精品在线观看 | 宅男噜噜噜66一区二区 | 亚洲骚片| 中文字幕+乱码+中文字幕明步 | 国产又大又黄又爽 | 99久在线精品99re8热 | 中文字幕色| 成人av日韩| 精品不卡视频 | 精品久久久久久久久久久久久久久久久久 | 日本精品久久久久中文字幕 | 喷水在线观看 | www.com毛片| 91原创视频在线观看 | 黄色一级片av | 一区影视| 草视频在线观看 | 欧美日韩国产高清 | 欧美jizzhd精品欧美18 | 美女色诱男人激情视频 |