首页 > 思科9月7日笔试
头像
牛客420011681号
编辑于 2020-09-07 20:42
+ 关注

思科9月7日笔试

前面单选多选大杂烩,C++、Java、Python、数据库、大数据一锅炖!招的应该是全栈开发工程师吧~🤣
最后一道编程题:一维数组,元素非负,表示从该下标开始能够向前移动的最大距离,问从0开始是否可以移动到最后
本质是图路径问题,使用dfs搜索,AC
就是输入有点骚,没见过这样给输入的(先去左右中括号,在根据逗号split)
public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        String s=in.next();
        s=s.substring(1,s.length()-1);
        String[] strings=s.split(",");
        if(strings.length==0||strings.length==1) {
            System.out.println(false);
            return;
        }
        int[] array=new int[strings.length];
        for(int i=0;i<strings.length;i++){
            array[i]=Integer.parseInt(strings[i]);
        }
        boolean[][] flag=new boolean[array.length][array.length];
        for(int i=0;i<array.length;i++){
            for(int j=0;j<=array[i];j++){
                if((i+j)>=array.length) break;
                flag[i][i+j]=true;
            }
        }

        //dfs
        boolean[] visited=new boolean[array.length];
        ArrayList<Integer> stack=new ArrayList<>();
        stack.add(0);
        while (!stack.isEmpty()){
            int temp=stack.remove(stack.size()-1);
            visited[temp]=true;
            for(int i=temp+1;i<array.length;i++){
                if(visited[i]) continue;
                if(!flag[temp][i]) continue;
                stack.add(i);
            }
        }

        System.out.println(visited[array.length-1]);
    }


全部评论

(2) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐