搜索
您的当前位置:首页正文

华为题目:服务启动问题

来源:易榕旅网
//项目之间相互依赖问题
public class Main {
    static int[][] data = new int[][]{{0},{3,2,3,0}, {3,3,0,1}, {1,0}};
    static List<Integer> list = new ArrayList<>();
    static boolean Flag=true;
    static int index=0;
    static target=2;
    public static void main(String[] args) {
        if(method(target)) list.add(target);
        System.out.println("list="+list);
        System.out.println(judge(target, list));
    }
    //递归方法
    public static boolean method(int size) {
        //截止条件
        index++;
        if(index>data.length*data.length) return false;
        System.out.println("size="+size);
        if (data[size][0] == 0 || judge(size,list)) {
            System.out.println("list="+list);
            return true;
        }

        //一般情况
        int num = 0;
        while (num < data[size][0]) {
            Flag=Flag && method(data[size][num+1]);
            if(!Flag) return false;
            if(Flag && !judge(data[size][num+1],list)) list.add(data[size][num+1]);
            num++;
        }
        return true;
    }

    //方法:判断某个数是否在一个集合中
    public static boolean judge(int x,List<Integer> list){
        for(int a:list){
            if(x==a) return true;
        }
        return false;
    }


}


因篇幅问题不能全部显示,请点此查看更多更全内容

Top