力扣力扣1042. 不邻接植花

力扣1042. 不邻接植花

题目

力扣力扣1042. 不邻接植花_第1张图片

题目解析及思路

题目要求在花园中种四种花,但每一对相邻的花园不能种同一种,返回一种可行方案

枚举每个点,取一种与邻居都不同的颜色即可

代码

class Solution {
public:
    vector<int> gardenNoAdj(int n, vector<vector<int>>& paths) {
        vector<int> ans(n);
        vector<vector<int>> g(n);
        //建图
        for(auto& e:paths){
            int x = e[0] - 1,y = e[1] - 1;
            g[x].push_back(y);
            g[y].push_back(x);
        }

        //枚举每个点
        for(int i=0;i<n;i++){
            bool used[5]{};
            //找邻居的颜色
            for(int j:g[i]){
                used[ans[j]] = true;
            }
            //从1-4找没用过的颜色
            while(used[++ans[i]]);
        }
        return ans;
    }
};

你可能感兴趣的:(leetcode,算法,职场和发展)