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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 1257. 最小公共区域(最小公共祖先)

發(fā)布時間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1257. 最小公共区域(最小公共祖先) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

給你一些區(qū)域列表 regions ,每個列表的第一個區(qū)域都包含這個列表內(nèi)所有其他區(qū)域。

很自然地,如果區(qū)域 X 包含區(qū)域 Y ,那么區(qū)域 X 比區(qū)域 Y 大。

給定兩個區(qū)域 region1 和 region2 ,找到同時包含這兩個區(qū)域的 最小 區(qū)域。

如果區(qū)域列表中 r1 包含 r2 和 r3 ,那么數(shù)據(jù)保證 r2 不會包含 r3 。

數(shù)據(jù)同樣保證最小公共區(qū)域一定存在。

示例 1: 輸入: regions = [["Earth","North America","South America"], ["North America","United States","Canada"], ["United States","New York","Boston"], ["Canada","Ontario","Quebec"], ["South America","Brazil"]], region1 = "Quebec", region2 = "New York" 輸出:"North America"提示: 2 <= regions.length <= 10^4 region1 != region2 所有字符串只包含英文字母和空格,且最多只有 20 個字母。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/smallest-common-region
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2. 解題

  • 用哈希表記錄每個子節(jié)點的父節(jié)點
  • 先把 r1 的父節(jié)點全部存到 f1 中,包含 r1 自己
  • 然后 r2 往上找父節(jié)點,父節(jié)點在 f1 中就找到了
class Solution { public:string findSmallestRegion(vector<vector<string>>& regions, string region1, string region2) {unordered_map<string,string> father;for(auto& r : regions)for(int i = 1; i < r.size(); ++i)father[r[i]] = r[0];unordered_set<string> f1;while(region1 != ""){f1.insert(region1);region1 = father[region1];}while(!f1.count(region2))region2 = father[region2];return region2;} };

148 ms 28.7 MB


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

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

總結(jié)

以上是生活随笔為你收集整理的LeetCode 1257. 最小公共区域(最小公共祖先)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。