第79题:单词搜索
一. 问题描述 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board = [ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E'] ] 给定 word = "ABCCED", 返回 true. 给定 word = "SEE", 返回 true. 给定 word = "ABCB", 返回 false. 二. 解题思路 解题思路:本题采用回溯算法进行求解,递归函数(已经存储的字符串haveword,已经存储的最后一位的定位横坐标X,纵坐标y,标记后的整个数组board,目标值word) 步骤一:判断当前数值是否等于目标。是:返回true,不是,继续递归。 步骤二:对进行存储的数值要进行标记为1,防止重复使用。 三. 执行结果 执行用时 :47 ms, 在所有 java 提交中击败了9.38%的用户 内存消耗 :39.2 MB, 在所有 java 提交中击败了95.96%的用户 四. Java代码 class Solution { public boolean exist(char[][] board, String word) { for(int i=0;i