You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于邻接矩阵的无向图BFS实现得分异常问题求助

关于无向图邻接矩阵BFS遍历评分异常的问题

我现在碰到个棘手的问题:我写了一段针对无向图邻接矩阵的BFS遍历代码,能在二维数组里得到正确的BFS和DFS结果,打印出来的顺序也完全符合预期,但评分系统始终给0分,完全摸不着头脑问题出在哪。以下是我的部分代码,希望能得到大家的思路:

public class BFS_DFS { 
    public static int[] BFS (int [][] graph) { 
        int[] output = {0}; 
        int start=0; 
        int v=graph.length;//a[][] is adj matrix declared globally 
        boolean visited[]=new boolean[v];//indexing done from 1 to n 
        LinkedList<...

结合你的代码片段,我提几个可能的排查方向:

  • 输出数组的初始化问题:你现在把output初始化为{0},如果图的顶点数大于1,这个固定长度的数组肯定没法容纳所有结果。建议先用ArrayList<Integer>来动态收集遍历到的顶点,最后再转成int[]返回,不然很容易出现结果截断或者数组越界的情况。
  • 索引一致性问题:你注释里写了indexing done from 1 to n,但visited数组是基于graph.length初始化的,索引范围是0到v-1,这里会不会出现索引错位?比如你想标记顶点1已访问,却误操作了visited[0]?
  • 队列的正确使用:用LinkedList作为队列的话,要确保调用的是队列的标准方法——比如用offer()添加元素,poll()取出队首元素,别不小心用成了栈的操作(比如pop()),这会直接改变遍历顺序。
  • 返回值的格式要求:评分系统可能对返回数组有严格要求,比如必须包含所有顶点、不能有重复、顺序必须严格遵循BFS的层级遍历逻辑(从start=0开始,先遍历0的所有邻接顶点,再依次处理这些顶点的邻接顶点)。
  • 边界场景处理:检查你的代码能不能处理空图、单个顶点的图、不连通的图这些边界情况。比如不连通的图,你的代码是不是只遍历了起始顶点所在的连通分量,没处理其他孤立的顶点?

内容的提问来源于stack exchange,提问作者jdjks jejej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:57:22