制作网站公司首 荐乐云seo,it运维工程师月薪,惠阳网站建设公司,商务网站设计与建设实训文章目录1. 题目2. 解题1. 题目
存在一个由 n 个不同元素组成的整数数组 nums #xff0c;但你已经记不清具体内容。 好在你还记得 nums 中的每一对相邻元素。
给你一个二维整数数组 adjacentPairs #xff0c;大小为 n - 1 #xff0c;其中每个 adjacentPairs[i] [ui, v…
文章目录1. 题目2. 解题1. 题目
存在一个由 n 个不同元素组成的整数数组 nums 但你已经记不清具体内容。 好在你还记得 nums 中的每一对相邻元素。
给你一个二维整数数组 adjacentPairs 大小为 n - 1 其中每个 adjacentPairs[i] [ui, vi] 表示元素 ui 和 vi 在 nums 中相邻。
题目数据保证所有由元素 nums[i] 和 nums[i1] 组成的相邻元素对都存在于 adjacentPairs 中存在形式可能是 [nums[i], nums[i1]] 也可能是 [nums[i1], 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:vectorint restoreArray(vectorvectorint P) {int n P.size();vectorint ans(n1, -1);unordered_mapint, vectorint g;unordered_mapint,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;}queueint 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阿明一起加油、一起学习进步