标签:node 785 int graph LeetCode edges between nodes Bipartite
Given an undirected graph, return true if and only if it is bipartite. Recall that a graph is bipartite if we can split it's set of nodes into two independent subsets A and B such that every edge in the graph has one node in A and another node in B. The graph is given in the following form: graph[i] is a list of indexes j for which the edge between nodes i and j exists. Each node is an integer between 0 and graph.length - 1. There are no self edges or parallel edges: graph[i] does not contain i, and it doesn't contain any element twice.
判断二分图,二分图染色的基本做法,DFS加染色
1 class Solution { 2 public: 3 int c=1; 4 int color[110]={0}; 5 bool isBipartite(vector<vector<int>>& graph) { 6 for(int i=0; i<graph.size(); i++){ 7 if(color[i]==0){ 8 if(!DFS(i,c,graph)){ 9 return false; 10 } 11 } 12 } 13 return true; 14 } 15 bool DFS(int v, int c,vector<vector<int>>& graph){ 16 color[v]=c; 17 for(int i=0; i<graph[v].size(); i++){ 18 if(color[graph[v][i]]==c) 19 return false; 20 if(color[graph[v][i]]==0&&!DFS(graph[v][i],-c,graph)) 21 return false; 22 } 23 return true; 24 } 25 };
标签:node,785,int,graph,LeetCode,edges,between,nodes,Bipartite 来源: https://www.cnblogs.com/Scotton-Wild/p/10290423.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。