import java.util.ArrayList; import java.util.List; import java.util.Scanner; /**  * Created by VinDiesel on 2017/4/2.  */ public class Main {     private static int[][] maze;     private static List<Node> path = new ArrayList<>();     private static int n;     private static int m;     public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         while (scanner.hasNext()){             n = scanner.nextInt();             m = scanner.nextInt();             maze = new int[n][m];             for (int i = 0; i < n; ++i)                 for (int j = 0; j < m; ++j)                     maze[i][j] = scanner.nextInt();             List<Node> list = new ArrayList<>();             list.add(new Node(0,0));             manualMaze(list,0,0);             for (Node node : path)                 System.out.println("("+node.x+","+node.y+")");                      }              }     static int minStep = Integer.MAX_VALUE;     public static void manualMaze(List<Node> list, int n_num, int m_num){         if (n_num == n - 1 && m_num == m - 1){             if (list.size() < minStep){                 minStep = list.size();                 for (Node node : list)                     path.add(node);                 return;             }         }         if (m_num < m - 1 && maze[n_num][m_num+1] != 1){             list.add(new Node(n_num,m_num+1));             manualMaze(list,n_num,m_num+1);             list.remove(list.size() - 1);         }         if (n_num < n - 1 && maze[n_num+1][m_num] != 1){             list.add(new Node(n_num+1,m_num));             manualMaze(list,n_num+1,m_num);             list.remove(list.size() - 1);         }     }      } class Node{     public int x;     public int y;     public Node(int x,int y){         this.x=x;         this.y=y;     } }
点赞 评论

相关推荐

想进开水团喝开水:哦 给我一个 就算你真拿到牛友也会为你开心的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-10 11:42
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务