1. 程式人生 > 遊戲 >《末日地帶:與世隔絕-倖存者版》登陸次世代主機 5月19日上線

《末日地帶:與世隔絕-倖存者版》登陸次世代主機 5月19日上線

package leetcode;


public class offer_12 {
    //設定全域性變數
    int flag=0;
    public boolean exist(char[][] board, String word) {
        if(board==null) {return false;}
        int height=board.length;
        int width=board[0].length;
        //設定一個訪問資料,防止重複尋找
        int[][] visited=new int[height][width];
        
for(int i=0;i<height;i++) { for(int j=0;j<width;j++) { backtrack(board,i,j,word,0,visited); if(flag==1) {return true;} } } return false; } public void backtrack(char[][] board,int i,int j,String word,int length,int
[][] visited) { if(visited[i][j]==0) { if(board[i][j]==word.charAt(length)) { length=length+1; visited[i][j]=1; //如果找到全部對應的word就返回 if(length==word.length()) { flag=1; return; }
//向上找 if(flag==0&&i>0) { backtrack(board, i-1, j, word, length,visited); } //向下找 if(flag==0&&i<board.length-1) { backtrack(board, i+1, j, word, length,visited); } //想左找 if(flag==0&&j>0) { backtrack(board, i, j-1, word, length,visited); } //向右找 if(flag==0&&j<board[0].length-1) { backtrack(board, i, j+1, word, length,visited); } visited[i][j]=0; } } } public static void main(String[] args) { // TODO Auto-generated method stub offer_12 off=new offer_12(); char[][] board= { {'A','B','C','E'}, {'S','F','C','S'}, {'A','D','E','E'} }; System.out.println(off.exist(board, "ABCCED")); } }