day80(2.8)——leetcode面试经典150

22. 括号生成

22. 括号生成

题目:

题解:

java 复制代码
class Solution {
    int left;   //左括号
    int right;  //右括号
    List<String> res;
    void dfs(int l, int r, StringBuilder sb) {
        if(l==0&&r==0) {
            res.add(sb.toString());
            return ;
        }
        if(l>0) {
            sb.append('(');
            dfs(l-1, r, sb);
            sb.deleteCharAt(sb.length()-1);
        }
        //剩余的左括号也要少于右括号才能形成完整的括号
        if(r>0&&l<r) {
            sb.append(')');
            dfs(l, r-1, sb);
            sb.deleteCharAt(sb.length()-1);
        }
    }

    public List<String> generateParenthesis(int n) {
        left=n;
        right=n;
        res = new ArrayList<>();
        dfs(left, right, new StringBuilder());
        return res;    
    }
}

79. 单词搜索

79. 单词搜索

题目:

题解:

java 复制代码
class Solution {
    int n;
    int m;
    boolean[][] visited;

    boolean dfs(int x, int y, char[][] board, String word, int t) {
         // 先检查是否越界或已访问
        if (x < 0 || x >= n || y < 0 || y >= m || visited[x][y]) {
            return false;
        }
        
        // 检查当前字符是否匹配
        if (board[x][y] != word.charAt(t)) {
            return false;
        }
        // 如果已经匹配到最后一个字符
        if(t==word.length()-1) {
            return true; 
        }
        visited[x][y]=true;
         // 向四个方向搜索(注意:题目只允许上下左右,不是8个方向!)
        boolean found = 
            dfs(x + 1, y, board, word, t + 1) ||
            dfs(x - 1, y, board, word, t + 1) ||
            dfs(x, y + 1, board, word, t + 1) ||
            dfs(x, y - 1, board, word, t + 1);

        //恢复现场
        visited[x][y]=false;

        return found;
    }

    public boolean exist(char[][] board, String word) {
        n = board.length;
        m = board[0].length;
        visited = new boolean[n][m];
        for(int i=0;i<n;i++) {
            for(int j=0;j<m;j++) {
                if(board[i][j]==word.charAt(0)) {
                    if(dfs(i, j, board, word, 0)) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
}
相关推荐
aiautotools5 小时前
Claude Code MCP 怎么配:命令、scope 与避坑
面试
soft_hub15 小时前
海外会议怎么用录音APP翻译会议内容
面试·职场和发展
考研保研资料分享5 小时前
2025生物信息跨保浙大:四校考核、文献读译与材料准备
面试
怕浪猫5 小时前
K3.1 直追 Astra,先补 13%
前端·javascript·面试
香蕉大香蕉(06敬畏市场)6 小时前
高频八股 · JVM(8)
java·jvm·面试·八股·大厂实习
CoderYanger6 小时前
Java EE 进阶:5. Spring IoC&DI(第二弹):Spring IoC
java·开发语言·spring boot·spring·面试·职场和发展·java-ee
Rain的Java大神之路7 小时前
面试被LeetCode 27(移除元素)问懵?别再用两层 for 循环了:一道“简单题”吃透双指针原地删除,附面试加分话术 + 11 个避坑清单
后端·leetcode·面试
利威尔xu8 小时前
Go IM 源码实战(11):token 只是个 HASH,多端互踢的顺序错了就踢错人
后端·微服务·面试·架构·golang
小李科技8 小时前
【性能优化】事件委托:目标定位与 React/Vue 实战
前端·vue.js·react.js·面试·性能优化·前端框架
Cosolar21 小时前
不收费、不加水印、数据归你:我做了个开源的在线简历工具
后端·面试·前端框架