华为od机试310求捞
性格测试已过
2020年二本计算机专业毕业,大数据开发,北京
在学校期间各种奖学金,获得过励志,蓝桥杯国三,优秀大学毕业生
四川职高高考,高考考了628可以去211但是当时为情所困去了一个二本师范。现在在社会上学历打的晕头转向
说起机试,就是那个上班那个题,我严重怀疑牛客网的题有问题,第三题通过百分之65输入死活异常...这题是真的有毒
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String s = in.nextLine(); String[] s1 = s.split(" "); int t = Integer.parseInt(s1[0]); int c = Integer.parseInt(s1[1]); String ss = in.nextLine(); String[] s2 = ss.split(" "); int n = Integer.parseInt(s2[0]); int m = Integer.parseInt(s2[1]); char[][] arr=new char[n][m]; for (int i = 0; i < n; i++) { arr[i]=in.nextLine().toCharArray(); } int[][] check = new int[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (arr[i][j]=='S') { if(dfs(i,j,arr,check,t+1,c,5)){ System.out.println("YES"); return; }else { System.out.println("NO"); return; } } } } } private static boolean dfs(int i, int j, char[][] arr, int[][] check, int t, int c,int z) { //System.out.println(i+" "+j); if (t<0||c<0||check[i][j]==1) return false; check[i][j]=1; if (arr[i][j]=='T') return true; int ud[]={1,0,-1,0}; int lr[]={0,1,0,-1}; boolean flag=false; for (int k = 0; k < 4; k++) { int l=i+ud[k]; int r=j+lr[k]; int count=1; if (k==z){ count=0; } if (l>=0&&l<arr.length&&r>=0&&r<arr[0].length){ int cc=0; if (arr[l][r]=='*') cc=1; flag=flag||dfs(l,r,arr,check,t-count,c-cc,k); } } check[i][j]=0; return flag; } }#23届找工作求助阵地##华为od捞人#