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;
    }
};
上一篇:leecode 122.买卖股票的最佳时机Ⅱ


下一篇:每日一题 0201