2026/4/18 13:41:50
网站建设
项目流程
溧水做网站,深圳网站建设公司服务怎么做,企业黄页官网,怎么用wordpress建电商网站吗1.题目2.思路
Listint[] quList of(new int[]{beginX,beginY});
//创建一个 Listint[]#xff0c;并把一个二维坐标 (beginX, beginY)#xff08;用 int[] 表示#xff09;放进去作为列表的第一个元素。
(1)每次从当前位置 (x,y) 走到相邻四格。
int[][] di…1.题目2.思路Listint[] quList of(new int[]{beginX,beginY});//创建一个 Listint[]并把一个二维坐标 (beginX, beginY)用 int[] 表示放进去作为列表的第一个元素。(1)每次从当前位置 (x,y) 走到相邻四格。int[][] directions{{-1,0},{1,0},{0,-1},{0,1}};(2)初始化行列、访问数组、入口坐标vis 用于防止重复入队导致死循环/超时。入口先标记已访问。(3)按层 BFS从入口开始每次扩展一圈ans 记录当前圈的步数第一次走到边界的可走格就是最近出口直接返回 ans没有就返回 -1。3.代码实现classSolution{staticint[][]directions{{-1,0},{1,0},{0,-1},{0,1}};publicintnearestExit(char[][]maze,int[]entrance){//行数intmmaze.length;//列数intnmaze[0].length;//标记访问过的元素boolean[][]visnewboolean[m][n];//起点intbeginXentrance[0];intbeginYentrance[1];//访问标记vis[beginX][beginY]true;//创建一个 Listint[]并把一个二维坐标 (beginX, beginY)用 int[] 表示放进去作为列表的第一个元素。Listint[]quList.of(newint[]{beginX,beginY});for(intans1;!qu.isEmpty();ans){Listint[]tmpqu;qunewArrayList();for(int[]p:tmp){//注意起点不算终点不能在这里判断p是不是终点for(int[]d:directions){//起点不算终点不能判断p是不是终点intxp[0]d[0];intyp[1]d[1];//之前没有访问过的元素if(0xxm0yynmaze[x][y].vis[x][y]false){if(x0||y0||xm-1||yn-1){//到达边界也就是到达终点returnans;}//访问过的元素进行标记vis[x][y]true;qu.add(newint[]{x,y});}}}}return-1;//无法到达终点}}