leetcode 1042. Flower Planting With No Adjacent
题意:给你一副地图,每个点不能和相邻的点的颜色相同。最多可以上四种颜色,保证一个点最多和三个点相邻。
思路:因为保证一个点最多和三个点相邻,那四个颜色刚好够用,简单模拟就好了。
代码:
class Solution {
public:
vector<int> gardenNoAdj(int N, vector<vector<int>>& paths) {
vector<int> edge[10010];
for(int i=0;i<paths.size();i++)
{
int x = paths[i][0];
int y = paths[i][1];
edge[x].push_back(y);
edge[y].push_back(x);
}
vector<int> ans(N,0);
for(int i=1;i<=N;i++)
{
ans[i-1]=gao(edge[i],ans);
}
return ans;
}
int gao(vector<int> edge,vector<int> ans)
{
for(int num=1;num<=4;num++)
{
bool flag = false;
for(int j=0;j<edge.size();j++)
{
if(ans[edge[j]-1] == num)
{
flag = true;
break;
}
}
if(flag == false)
return num;
}
return 0;
}
};