代码随想录训练营第三十期|第二十五天|216.组合总和III● 17.电话号码的字母组合

news/2024/7/20 21:02:33 标签: 深度优先, 算法, 数据结构, java, leetcode

216. 组合总和 III - 力扣(LeetCode)

java">class Solution {
    public List<List<Integer>> combinationSum3(int k, int n) {
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        dfs(res, list, k, n, 1, 0);
        return res;
    }

    private void dfs(List<List<Integer>> res, List<Integer> list, int k, int n, int idx, int sum) {
        if (sum > n) return;

        if (list.size() == k) {
            if (sum == n) {
                res.add(new ArrayList<>(list));
            }
        }

        for (int i = idx; i <= 9; i++) {
            sum += i;
            list.add(i);
            dfs(res, list, k, n, i + 1, sum);
            sum -= i;
            list.remove(list.size() - 1);
        }
    }
}

17. 电话号码的字母组合 - 力扣(LeetCode)

java">class Solution {
    String[] keys = new String[]{"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
    public List<String> letterCombinations(String digits) {
        List<String> res = new ArrayList<>();
        if (digits.isEmpty()) return res;
        StringBuilder sb = new StringBuilder();
        dfs(res, sb, digits, 0);
        return res;
    }

    private void dfs(List<String> res, StringBuilder sb, String digits, int idx) {
        if (idx == digits.length()) {
            res.add(sb.toString());
            return;
        }

        String cur = keys[digits.charAt(idx) - '0'];
        for (int i = 0; i < cur.length(); i++) {
            sb.append(cur.charAt(i));
            dfs(res, sb, digits, idx + 1);
            sb.deleteCharAt(sb.length() - 1);
        }
    }
}


http://www.niftyadmin.cn/n/5362157.html

相关文章

Django的web框架Django Rest_Framework精讲(二)

文章目录 1.自定义校验功能&#xff08;1&#xff09;validators&#xff08;2&#xff09;局部钩子&#xff1a;单字段校验&#xff08;3&#xff09;全局钩子&#xff1a;多字段校验 2.raise_exception 参数3.context参数4.反序列化校验后保存&#xff0c;新增和更新数据&…

华为数通方向HCIP-DataCom H12-821题库(单选题:401-420)

第401题 R1的配置如图所示,此时在R1查看FIB表时,关于目的网段192.168.1.0/24的下跳是以下哪一项? A、10.0.23.3 B、10.0.12.2 C、10.0.23.2 D、10.0.12.1 【答案】A 【答案解析】 该题目考查的是路由的递归查询和 RIB 以及 FIB 的关系。在 RIB 中,静态路由写的是什么,下…

内地与香港司法协助落实,对 Web3.0 行业有何影响?

撰文&#xff1a;金鉴智&#xff0c;上海曼昆律师事务所资深律师 文章来源&#xff1a;Techub News Web3媒体资讯平台。 最高法公布《关于内地与香港特别行政区法院相互认可和执行民商事案件判决的安排》于 2024 年 1 月 29 日实施。至此&#xff0c;内地与香港已经通过的关于…

TCP TIME_WAIT 过多怎么处理

文章目录 1.什么是 TCP TIME_WAIT&#xff1f;2.为什么要 TIME_WAIT?3.TIME_WAIT 过多的影响4.解决办法4.1 调整短连接为长连接4.2 调整系统内核参数 5.小结参考文献 1.什么是 TCP TIME_WAIT&#xff1f; TCP 断开连接四次挥手过程中&#xff0c;主动断开连接的一方&#xff…

postman中请求参数和后端注解的关系

一、RequestParam注解RequestParam修饰的变量&#xff0c;在postman中是以Params的形式传递&#xff0c;如下图&#xff0c;name&#xff0c;password&#xff0c;force分别被注解RequestParam修饰。 URL的显示如下&#xff1a;http://192.168.1.107:8001/api/v29/auth?namea…

线性代数:矩阵的秩

目录 一、矩阵的子式 二、矩阵的秩 三、重要性质定理推论 一、矩阵的子式 二、矩阵的秩 三、重要性质定理推论

vue3.0中从proxy中取值

使用vue3.0时&#xff0c;因为底层是使用proxy进行代理的所以当我们打印一些值的时候是proxy代理之后的&#xff0c;是Proxy 对象&#xff0c;Proxy对象里边的[[Target]]才是真实的对象。也是我们需要的 第一种获取target值的方式&#xff1a; import { toRaw } from vue; le…

c语言--求第n个斐波那契数列(递归、迭代)

目录 一、概念二、用迭代求第n个斐波那契数1.分析2.完整代码3.运行结果4.如果求第50个斐波那契数呢&#xff1f;看看会怎么样。4.1运行结果&#xff1a;4.2画图解释 三、用迭代的方式求第n个斐波那契数列1.分析2.完整代码3.运行结果4.求第50个斐波那契数4.1运行结果4.2运行结果…