使用php做的网站wordpress 视频幻灯片

张小明 2025/12/24 23:48:04
使用php做的网站,wordpress 视频幻灯片,建设文明网站包括哪些内容,中国三北防护林体系建设网站判断二分图 问题描述 存在一个无向图#xff0c;图中有 n 个节点#xff0c;编号从 0 到 n - 1。给你一个二维数组 graph 表示图的邻接表#xff0c;其中 graph[u] 是一个节点数组#xff0c;表示与节点 u 相邻的节点。 如果可以将图中节点分为两组#xff0c;使得每条…判断二分图问题描述存在一个无向图图中有n个节点编号从0到n - 1。给你一个二维数组graph表示图的邻接表其中graph[u]是一个节点数组表示与节点u相邻的节点。如果可以将图中节点分为两组使得每条边的两个节点分别属于不同组则称这个图是二分图。请你判断给定的图是否是二分图。如果是返回true否则返回false。示例输入: graph [[1,2,3],[0,2],[0,1,3],[0,2]] 输出: false 解释: 节点不能分成两组使得每条边的两个节点在不同组。 因为存在奇数长度的环三角形0-1-2-0。 输入: graph [[1,3],[0,2],[1,3],[0,2]] 输出: true 解释: 可以将节点分成两组: {0, 2} 和 {1, 3}。算法思路经典的图着色问题可以用深度优先搜索DFS或广度优先搜索BFS解决。二分图着色可以用两种颜色对图进行着色使得相邻节点颜色不同环图中不存在奇数长度的环奇环等价图是二分图 图中所有环的长度都是偶数方法图着色为每个节点分配颜色0或1相邻节点必须颜色不同冲突检测如果发现相邻节点颜色相同则不是二分图连通分量图可能不连通需要检查所有连通分量代码实现方法一DFSclassSolution{/** * 使用DFS判断图是否为二分图 * * param graph 邻接表表示的无向图 * return true表示是二分图false表示不是 */publicbooleanisBipartite(int[][]graph){intngraph.length;// color[i] 表示节点i的颜色-1表示未着色0和1表示两种颜色int[]colornewint[n];Arrays.fill(color,-1);// 遍历所有节点处理可能的多个连通分量for(inti0;in;i){// 如果节点未着色从该节点开始DFS着色if(color[i]-1){if(!dfs(graph,color,i,0)){returnfalse;}}}returntrue;}/** * DFS着色函数 * * param graph 邻接表 * param color 颜色数组 * param node 当前节点 * param c 当前要着的颜色 * return true表示着色成功false表示发现冲突 */privatebooleandfs(int[][]graph,int[]color,intnode,intc){// 为当前节点着色color[node]c;// 遍历所有相邻节点for(intneighbor:graph[node]){if(color[neighbor]-1){// 相邻节点未着色递归着色为相反颜色if(!dfs(graph,color,neighbor,1-c)){returnfalse;}}elseif(color[neighbor]c){// 相邻节点已着色且颜色相同发现冲突returnfalse;}// 如果相邻节点颜色不同color[neighbor] 1 - c继续检查}returntrue;}}方法二BFSimportjava.util.*;classSolution{/** * 使用BFS判断图是否为二分图 * * param graph 邻接表表示的无向图 * return true表示是二分图false表示不是 */publicbooleanisBipartite(int[][]graph){intngraph.length;int[]colornewint[n];Arrays.fill(color,-1);// 遍历所有节点for(inti0;in;i){if(color[i]-1){if(!bfs(graph,color,i)){returnfalse;}}}returntrue;}/** * BFS着色函数 * * param graph 邻接表 * param color 颜色数组 * param start 起始节点 * return true表示着色成功false表示发现冲突 */privatebooleanbfs(int[][]graph,int[]color,intstart){QueueIntegerqueuenewLinkedList();queue.offer(start);color[start]0;// 起始节点着色为0while(!queue.isEmpty()){intnodequeue.poll();intcurrentColorcolor[node];// 遍历相邻节点for(intneighbor:graph[node]){if(color[neighbor]-1){// 未着色着相反颜色color[neighbor]1-currentColor;queue.offer(neighbor);}elseif(color[neighbor]currentColor){// 颜色冲突returnfalse;}}}returntrue;}}方法三并查集classSolution{/** * 使用并查集判断二分图 * 核心思想每个节点u和它的所有邻居v应该在不同的集合中 * 将u的所有邻居合并到同一个集合然后检查u是否与该集合连通 */publicbooleanisBipartite(int[][]graph){intngraph.length;UnionFindufnewUnionFind(n);// 遍历每个节点for(intu0;un;u){int[]neighborsgraph[u];if(neighbors.length0)continue;// 将u的所有邻居合并到同一个集合intfirstNeighborneighbors[0];for(inti1;ineighbors.length;i){uf.union(firstNeighbor,neighbors[i]);}// 检查u是否与邻居集合连通如果是则不是二分图if(uf.isConnected(u,firstNeighbor)){returnfalse;}}returntrue;}/** * 并查集实现 */classUnionFind{privateint[]parent;privateint[]rank;publicUnionFind(intn){parentnewint[n];ranknewint[n];for(inti0;in;i){parent[i]i;rank[i]0;}}publicintfind(intx){if(parent[x]!x){parent[x]find(parent[x]);// 路径压缩}returnparent[x];}publicvoidunion(intx,inty){introotXfind(x);introotYfind(y);if(rootX!rootY){// 按秩合并if(rank[rootX]rank[rootY]){parent[rootX]rootY;}elseif(rank[rootX]rank[rootY]){parent[rootY]rootX;}else{parent[rootY]rootX;rank[rootX];}}}publicbooleanisConnected(intx,inty){returnfind(x)find(y);}}}算法分析时间复杂度DFS/BFSO(V E)V是节点数E是边数并查集O(E × α(V))α为常数空间复杂度DFSO(V) - 递归栈空间BFSO(V) - 队列空间并查集O(V) - parent和rank数组算法过程1graph [[1,3],[0,2],[1,3],[0,2]]二分图DFS过程从节点0开始着色为0节点1和3着色为1从节点1节点2着色为0从节点3检查节点2已着色为0与节点3的1不同所有节点着色成功返回true着色结果组0{0, 2}组1{1, 3}2graph [[1,2,3],[0,2],[0,1,3],[0,2]]非二分图DFS过程从节点0开始着色为0节点1、2、3着色为1从节点1检查节点2已着色为1与节点1相同发现冲突返回false冲突原因存在三角形环0-1-2-0奇数长度环测试用例publicstaticvoidmain(String[]args){SolutionsolutionnewSolution();// 测试用例1标准二分图int[][]graph1{{1,3},{0,2},{1,3},{0,2}};System.out.println(Test 1: solution.isBipartite(graph1));// true// 测试用例2非二分图奇环int[][]graph2{{1,2,3},{0,2},{0,1,3},{0,2}};System.out.println(Test 2: solution.isBipartite(graph2));// false// 测试用例3单个节点int[][]graph3{{}};System.out.println(Test 3: solution.isBipartite(graph3));// true// 测试用例4两个节点一条边int[][]graph4{{1},{0}};System.out.println(Test 4: solution.isBipartite(graph4));// true// 测试用例5三个节点形成三角形int[][]graph5{{1,2},{0,2},{0,1}};System.out.println(Test 5: solution.isBipartite(graph5));// false// 测试用例6四个节点形成正方形int[][]graph6{{1,3},{0,2},{1,3},{0,2}};System.out.println(Test 6: solution.isBipartite(graph6));// true// 测试用例7不连通图多个连通分量int[][]graph7{{1},{0},{3},{2}};System.out.println(Test 7: solution.isBipartite(graph7));// true// 测试用例8不连通图包含奇环int[][]graph8{{1,2},{0,2},{0,1},{4},{3}};System.out.println(Test 8: solution.isBipartite(graph8));// false// 测试用例9空图int[][]graph9{};System.out.println(Test 9: solution.isBipartite(graph9));// true// 测试用例10星型图int[][]graph10{{1,2,3,4},{0},{0},{0},{0}};System.out.println(Test 10: solution.isBipartite(graph10));// true}关键点二分图节点可分为两个互斥集合每条边的两个端点属于不同集合着色策略使用两种颜色0和1相邻节点必须颜色不同颜色数组初始值为-1表示未访问连通分量图可能不连通需要遍历所有节点每个连通分量都要是二分图冲突检测发现相邻节点同色立即返回false不需要继续处理其他部分图邻接表形式graph[u]包含u的所有邻居无向图如果u在graph[v]中则v也在graph[u]中常见问题为什么奇数长度的环会导致不是二分图奇环中从任意节点开始着色最终会回到起始节点且颜色冲突偶环可以成功着色奇环不行并查集每个节点u的邻居应该在同一集合中u本身不应该与该集合连通如果连通说明存在奇环
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

英文网站推广服务东莞站福公司工资

节省时间:掌握二维数组,让你轻松处理表格、矩阵等复杂数据结构的核心技能。在C语言的学习中,二维数组是从基础语法向实际应用过渡的重要桥梁。无论是开发游戏、进行科学计算还是处理图像,二维数组都扮演着关键角色。本文将系统介绍…

张小明 2025/12/24 23:48:04 网站建设

建设网站哪家强百度竞价排名费用

在中国中铁深耕全球、助力国家“一带一路”倡议推进中,中铁资源金港公司聚焦境外企业外派人员服务保障,以“选、育、派、管、归”全流程闭环管理体系,持续深耕服务细节,筑牢基础业务“压舱石”,切实守护外派员工福祉。…

张小明 2025/12/24 23:46:03 网站建设

网站建设的体会网络营销顾问招聘

掌握OptiSystem的5大实战技巧:从零开始的光通信仿真指南 【免费下载链接】OptiSystem仿真实例分享 OptiSystem仿真实例欢迎来到OptiSystem仿真实例资源页面 项目地址: https://gitcode.com/Open-source-documentation-tutorial/5e61e 想要在光通信系统设计领…

张小明 2025/12/24 23:44:02 网站建设

网站设计规划报告登建设厅锁子的是哪个网站

深夜的社会科学实验室里,一位研究生正盯着SPSS软件中复杂的操作界面,试图从一堆t检验、方差分析和回归结果中寻找“显著”的痕迹。隔壁工位,他的同学正在将同样的数据粘贴给某个通用AI助手,得到的却是一堆看似专业实则经不起推敲的…

张小明 2025/12/24 23:42:00 网站建设

优秀网站建设出售赣州创可通科技有限公司

第一章:Docker与LangGraph多Agent部署全攻略导论在现代AI应用开发中,构建可扩展、模块化的智能代理系统成为关键需求。LangGraph作为基于LangChain的图状流程编排框架,支持多Agent协同工作模式,能够灵活定义节点间的执行逻辑与状态…

张小明 2025/12/24 23:39:58 网站建设

网站建设 外文文献wordpress如何做一个导航页面

10 个AI写作工具,助继续教育学员轻松写论文! AI写作工具,让论文不再难 在继续教育的学习过程中,撰写论文往往是学员们最头疼的环节之一。无论是选题、构思还是写作、修改,每一个步骤都需要投入大量时间和精力。而随着人…

张小明 2025/12/24 23:37:57 网站建设