支付网站建设要求,保定网站建设公司,wordpress 财经插件,搭建一个网站教程文章目录 Day 25 第七章 回溯算法part02216.组合总和III自己的思路#xff08;✅通过#xff09; 17.电话号码的字母组合思路代码 Day 25 第七章 回溯算法part02
今日内容#xff1a; ● 216.组合总和III● 17.电话号码的字母组合
216.组合总和III 如果把 组合问题理解了… 文章目录 Day 25 第七章 回溯算法part02216.组合总和III自己的思路✅通过 17.电话号码的字母组合思路代码 Day 25 第七章 回溯算法part02
今日内容 ● 216.组合总和III● 17.电话号码的字母组合
216.组合总和III 如果把 组合问题理解了本题就容易一些了。题目链接https://leetcode.cn/problems/combination-sum-iii/视频讲解https://www.bilibili.com/video/BV1wg411873x文章讲解https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html 自己的思路✅通过
public static ListListInteger combinationSum3(int k, int n) {ListListInteger res new ArrayList();dfs(1, n, k, new LinkedList(), res);return res;
}
public static void dfs(int start, int n, int k, LinkedListInteger stack, ListListInteger res){if(stack.size() k n 0) {res.add(new ArrayList(stack));return;}for (int i start; i 9; i) {//剪枝操作if(i n) continue;stack.push(i);dfs(i 1, n - i, k, stack, res);stack.pop();}
}17.电话号码的字母组合 本题大家刚开始做会有点难度先自己思考20min没思路就直接看题解。题目链接https://leetcode.cn/problems/letter-combinations-of-a-phone-number/视频讲解https://www.bilibili.com/video/BV1yV4y1V7Ug文章讲解https://programmercarl.com/0017.%E7%94%B5%E8%AF%9D%E5%8F%B7%E7%A0%81%E7%9A%84%E5%AD%97%E6%AF%8D%E7%BB%84%E5%90%88.html 思路
创建一个字符串类型的数组用来做数字与字母之间的映射
代码
class Solution {ListString res new ArrayList();//代表单个结果使用StringBuilder类型好操作StringBuilder temp new StringBuilder();//数字与字母之间的映射String[] letterMap {, , abc, def, ghi, jkl, mno, pqrs, tuv, wxyz};public ListString letterCombinations(String digits) {if (digits null || digits.length() 0) {return res;}String[] digit new String[digits.length()];dfs(digits, 0);return res;}public void dfs(String digits, int index){if(index digits.length()){res.add(temp.toString());return;}int digit digits.charAt(index) - 0;String letter letterMap[digit];//因为是从两个集合里取元素所以不需要去重的操作i从0开始for (int i 0; i letter.length(); i) {temp.append(letter.charAt(i));//System.out.println(temp);dfs(digits, index 1);temp.deleteCharAt(temp.length() - 1);}}
}