A题,不知道那里有错误

通过了81.25%,错误是“数组越界等非法访问情况”
求帮助
import java.util.*;
 
/*
 * public class Point {
 *   int x;
 *   int y;
 * }
 */
 
public class Solution {
    /**
     * 返回牛牛能到达终点且不被淘汰的路径数
     * @param n int整型
     * @param Edge Point类一维数组
     * @param f int整型一维数组
     * @return int整型
     */
    List<Integer>[] list;
    int res;
    int[] f;
    boolean[] visit;
 
    public int solve(int n, Point[] Edge, int[] f) {
        // write code here
        list = new List[n+1];
        visit = new boolean[n+1];
        this.f = f;
        for (int i = 0; i < n; i++) {
            list[i] = new ArrayList<>();
        }
        for (Point point : Edge) {
            list[point.x - 1].add(point.y - 1);
            list[point.y - 1].add(point.x - 1);
        }
        res = 0;
        visit[0] = true;
        dfs(0, 0);
        return res;
    }
 
    public void dfs(int x, int g) {
        if (f[x] == 1) {
            g++;
        }
        List<Integer> list1 = list[x];
        int y = 0;
        for (Integer integer : list1) {
            if (!visit[integer]) {
                visit[integer] = true;
                y++;
                dfs(integer, g);
            }
        }
        if (y == 0 && g <= 2) {
            res++;
        }
    }
}


全部评论

相关推荐

10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
像好涩一样好学:这公司我也拿过 基本明确周六加班 工资还凑活 另外下次镜头往上点儿
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务