欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LeetCode笔记(图:图染色***)

程序员文章站 2022-06-07 10:47:01
...

1042. 不邻接植花

LeetCode笔记(图:图染色***)

class Solution {
public:
    vector<int> gardenNoAdj(int n, vector<vector<int>>& paths) {
        if(paths.empty()) return vector<int>(n, 1);

        vector<int> res(n, 0);
        vector<vector<int>> graph(n);
        for(auto x : paths) {
            graph[x[0] - 1].push_back(x[1] - 1);
            graph[x[1] - 1].push_back(x[0] - 1);
        }

        for(int i = 0; i < n; i++) {
            if(!res[i]) {
                unordered_set<int> colors{1, 2, 3, 4};
                for(auto x : graph[i]) {
                    if(res[x]) 
                        colors.erase(res[x]);
                }
                res[i] = *colors.begin();
            }
        }

        return res;
    }
};
相关标签: c++ leetcode