Without using Visited Array | 6ms Simple Easy to Understand
\nclass Solution {\n    public boolean exist(char[][] board, String word) {\n        for(int i = 0; i < board.length; i++)\n            for(int j = 0; j < board
```\nclass Solution {\n    public boolean exist(char[][] board, String word) {\n        for(int i = 0; i < board.length; i++)\n            for(int j = 0; j < board[0].length; j++)\n                if(board[i][j] == word.charAt(0) && isFound(board, i, j, word, 0))\n                    return true;\n        \n        return false;\n    }\n    \n    private boolean isFound(char[][] board, int i, int j, String word, int index) {\n        if(index == word.length()) return true;\n        if(i < 0 || j < 0 || i >= board.length || j >= board[0].length) return false;\n        if(word.charAt(index) != board[i][j]) return false;\n        char temp = board[i][j];\n        board[i][j] = \'*\';\n        if(isFound(board, i + 1, j, word, index + 1) ||\n            isFound(board, i - 1, j, word, index + 1) ||\n            isFound(board, i, j + 1, word, index + 1) ||\n            isFound(board, i, j - 1, word, index + 1))\n            return true;\n        board[i][j] = temp;\n        return false;\n    }\n}\n```
[]