前面单选多选大杂烩,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) 回帖