编程语言
首页 > 编程语言> > Leetcode 1743. 从相邻元素对还原数组(DAY 122) ---- 贪心算法学习期

Leetcode 1743. 从相邻元素对还原数组(DAY 122) ---- 贪心算法学习期

作者:互联网

原题题目

在这里插入图片描述


代码实现(首刷自解)

class Solution {
public:
    vector<int> restoreArray(vector<vector<int>>& adjacentPairs) {
        unordered_map<int,vector<int>> map;
        unordered_set<int> temp;
        vector<int> ret(adjacentPairs.size()+1,INT_MAX);
        int nums = adjacentPairs.size()+1;
        for(const auto& pair:adjacentPairs)
        {
            for(int i=0;i<=1;++i)
            {
                map[pair[i]].emplace_back(pair[i^1]);
                if(map[pair[i]].size() == 2)    temp.erase(temp.find(pair[i]));
                else    temp.emplace(pair[i]);
            }
        }

        for(const auto& num:temp)
            if(ret[0] == INT_MAX)   ret[0] = num;
            
        for(int i=1;i<nums;++i)
        {
            for(const auto& num:map[ret[i-1]])
            {
                if(i>=2 &&num == ret[i-2]) continue;
                ret[i] = num;
            }
        }
        return ret;
    }
};

标签:map,temp,ret,----,122,num,adjacentPairs,pair,DAY
来源: https://blog.csdn.net/qq_37500516/article/details/117221335