笔试强训 Day 34:ISBN 号码、kotori 和迷宫、矩阵最长递增路径 Day 34ISBN 号码解题思路模拟注意 char 和 int 的转换涉及 ASCII 码的转换需要进行 ± ‘0’代码实现importjava.util.*;publicclassMain{privatestaticintMOD11;publicstaticvoidmain(String[]args){ScannerinnewScanner(System.in);char[]sin.next().toCharArray();intns.length;intsum0;intidx1;inttail0;for(inti0;in;i){if(s[i]-)continue;if(in-1){intnumsum%11;inttmps[i]X?10:s[i]-0;if(numtmp){System.out.println(Right);return;}else{if(num10)s[i]X;elses[i](char)(num0);}}else{sum(s[i]-0)*idx;}}System.out.println(String.valueOf(s));}}kotori 和迷宫解题思路bfs注意需要记录入口到出口的最短路径因此除了往队列传坐标外还可以传每个坐标距离起点的距离代码实现importjava.io.*;importjava.util.*;publicclassMain{privatestaticPrintWriteroutnewPrintWriter(newBufferedWriter(newOutputStreamWriter(System.out)));privatestaticReadinnewRead();publicstaticvoidmain(String[]args)throwsIOException{intnin.nextInt(),min.nextInt();intstarX0,starY0;char[][]gridnewchar[n1][m1];for(inti1;in;i){Stringstrin.next();for(intj1;jm;j){grid[i][j]str.charAt(j-1);if(grid[i][j]k){starXi;starYj;}}}boolean[][]visitnewboolean[n1][m1];int[][]dirsnewint[][]{{-1,0},{1,0},{0,-1},{0,1}};Queueint[]queuenewLinkedList();// 初始化, 第三个元素表示和入口的距离queue.add(newint[]{starX,starY,0});visit[starX][starY]true;// bfsintcntE0,minInteger.MAX_VALUE;while(!queue.isEmpty()){int[]curqueue.poll();for(int[]dir:dirs){intxcur[0]dir[0];intycur[1]dir[1];// 更新和入口的距离intdistancecur[2]1;if(x1||xn||y1||ym)continue;if(visit[x][y])continue;if(grid[x][y]*)continue;elseif(grid[x][y]e){// 到达出口一定出迷宫, 坐标不入队列cntE;minMath.min(min,distance);// 出口也要标记visit[x][y]true;}else{visit[x][y]true;queue.offer(newint[]{x,y,distance});}}}// 出口为 0, 输出 -1if(cntE0)out.println(-1);elseout.println(cntE min);out.close();}}classRead{StringTokenizerstnewStringTokenizer();BufferedReaderbfnewBufferedReader(newInputStreamReader(System.in));Stringnext()throwsIOException{if(!st.hasMoreTokens()){Stringlinebf.readLine();if(linenull)returnnull;stnewStringTokenizer(line);}returnst.nextToken();}intnextInt()throwsIOException{returnInteger.parseInt(next());}}矩阵最长递增路径解题思路记忆化搜索 递归代码实现importjava.util.*;publicclassSolution{privateint[][]matrix;privateintm,n;privateintret0;privateboolean[][]visit;privateint[][]dirsnewint[][]{{-1,0},{1,0},{0,-1},{0,1}};publicintsolve(int[][]_matrix){matrix_matrix;mmatrix.length;nmatrix[0].length;visitnewboolean[m][n];for(inti0;im;i){for(intj0;jn;j){dfs(i,j,1);}}returnret;}privatevoiddfs(inti,intj,intlen){if(!check(i,j))return;if(visit[i][j])return;visit[i][j]true;retMath.max(ret,len);for(int[]dir:dirs){intxidir[0];intyjdir[1];if(!check(x,y))continue;if(matrix[i][j]matrix[x][y])dfs(x,y,len1);}visit[i][j]false;}privatebooleancheck(inti,intj){if(i0||im||j0||jn)returnfalse;returntrue;}}