常見演算法 在二維平面內搜尋字元路徑

2021-08-20 02:28:37 字數 1123 閱讀 6901

回溯法練習:

給定一組二維字元,對於每個字元只能向上下左右某個方向走,求是否有路徑經過的字串恰好是給定的字串(leetcode79):

example:

board =

[ ['a','b','c','e'],

['s','f','c','s'],

['a','d','e','e']

]given word = "abcced", return true.

given word = "see", return true.

given word = "abcb", return false.

思路:回溯法的練習題。遍歷每乙個位置,對於每個位置,判斷其是否等於字串當前的字元,然後其可以向上左下右走(存在),判斷是否等於下乙個位置的字元,以此遞迴,遞迴的出口是到達字串的最後乙個字元且平面字元等於該字元。同時,題目要求不能重複走某個位置,所以要記錄當前位置是否走過。這題用到回溯的思想是每個位置board[i][j]

public class l79wordsearch ,,,};

boolean visit ;

public static void main(string args) };

// ,

// ,

//

// };

system.out.println(new l79wordsearch().exist(board, "ba")); }

public boolean exist(char board, string word)

}}

return res;

} public boolean haspath(char board, string word, int x, int y, int index)

if(board[x][y] == word.charat(index))}}

visit[x][y] = false;

}return false;

} public boolean inarea(char board,int x,int y)

}

leetcode 79 在二維網格內搜尋單詞

題目描述 給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。解題思路 由於我們要在二維陣列中尋找路徑,所以我們可以採用遞迴的方式,如果當前路徑不符合要求...

每日演算法 搜尋二維矩陣

目錄這是 leetcode 上的 74.搜尋二維矩陣,難度為 中等 編寫乙個高效的演算法來判斷 m x n 矩陣中,是否存在乙個目標值。該矩陣具有如下特性 每行中的整數從左到右按公升序排列。每行的第乙個整數大於前一行的最後乙個整數。示例 1 輸入 matrix 1,3,5,7 10,11,16,20...

二維平面上的回溯演算法(dfs)

回溯演算法在二維平面上的搜尋也能得到應用,也就是我們常說的dfs 題目 給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 輸入 3 4abce s...