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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

LeetCode 1743. 从相邻元素对还原数组(拓扑排序)

發布時間:2024/7/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 1743. 从相邻元素对还原数组(拓扑排序) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. 題目
    • 2. 解題

1. 題目

存在一個由 n 個不同元素組成的整數數組 nums ,但你已經記不清具體內容。
好在你還記得 nums 中的每一對相鄰元素。

給你一個二維整數數組 adjacentPairs ,大小為 n - 1 ,其中每個 adjacentPairs[i] = [ui, vi] 表示元素 ui 和 vi 在 nums 中相鄰。

題目數據保證所有由元素 nums[i] 和 nums[i+1] 組成的相鄰元素對都存在于 adjacentPairs 中,存在形式可能是 [nums[i], nums[i+1]] ,也可能是 [nums[i+1], nums[i]] 。
這些相鄰元素對可以 按任意順序 出現。

返回 原始數組 nums 。
如果存在多種解答,返回 其中任意一個 即可。

示例 1: 輸入:adjacentPairs = [[2,1],[3,4],[3,2]] 輸出:[1,2,3,4] 解釋:數組的所有相鄰元素對都在 adjacentPairs 中。 特別要注意的是,adjacentPairs[i] 只表示兩個元素相鄰,并不保證其 左-右 順序。示例 2: 輸入:adjacentPairs = [[4,-2],[1,4],[-3,1]] 輸出:[-2,4,1,-3] 解釋:數組中可能存在負數。 另一種解答是 [-3,1,4,-2] ,也會被視作正確答案。示例 3: 輸入:adjacentPairs = [[100000,-100000]] 輸出:[100000,-100000]提示: nums.length == n adjacentPairs.length == n - 1 adjacentPairs[i].length == 2 2 <= n <= 10^5 -10^5 <= nums[i], ui, vi <= 10^5 題目數據保證存在一些以 adjacentPairs 作為元素對的數組 nums

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

2. 解題

  • 拓撲排序,出入度為 1 的是兩端的數字
class Solution { public:vector<int> restoreArray(vector<vector<int>>& P) {int n = P.size();vector<int> ans(n+1, -1);unordered_map<int, vector<int>> g;unordered_map<int,int> indegree;for(auto& p : P){g[p[0]].push_back(p[1]);g[p[1]].push_back(p[0]);indegree[p[0]]++;indegree[p[1]]++;}int start = INT_MIN, last = INT_MIN;for(auto ind : indegree){if(ind.second == 1 && start == INT_MIN)start = ind.first;else if(ind.second == 1 && last == INT_MIN)last = ind.first;}queue<int> q;q.push(start);int idx = 0;while(!q.empty()){int t = q.front();indegree[t]--;ans[idx++] = t;q.pop();for(int next : g[t]){if(--indegree[next] == 1)q.push(next);}}ans.back() = last; return ans;} };

632 ms 115.7 MB C++


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

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

總結

以上是生活随笔為你收集整理的LeetCode 1743. 从相邻元素对还原数组(拓扑排序)的全部內容,希望文章能夠幫你解決所遇到的問題。

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