day29 | 216.组合总和III 17.电话号码的字母组合
文章目录
- 216.组合总和III
- 1、代码(AC)
- 2、分析
- 17.电话号码的字母组合
- 1、代码
- 2、分析
216.组合总和III
1、代码(AC)
class Solution {List<List<Integer>> result = new ArrayList<>();LinkedList<Integer> path = new LinkedList<>();public List<List<Integer>> combinationSum3(int k, int n) {backtracking(k,n,1,0);return result;}public void backtracking(int k,int n,int startIndex,int sum){//终止条件if(sum == n && path.size() == k){result.add(new ArrayList<>(path));return;}if(path.size() == k && sum != n){return;}if(sum > n){return;}//遍历深度for(int i=startIndex; i<=n - (k-path.size()) + 1 ; i++){if(i <= 9){path.add(i);sum += i;backtracking(k,n,i+1,sum);path.removeLast();sum -= i;}else{return;}}}
}
2、分析
(1)用指针作为参数控制深度。
17.电话号码的字母组合
1、代码
class Solution {List<String> result = new ArrayList<>();public List<String> letterCombinations(String digits) {//剪枝操作(处理空字符串)if(digits.length() == 0 || digits == null){return result;}String[] numString = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};backtracking(digits,numString,0);return result;}StringBuilder temp = new StringBuilder();public void backtracking(String digits,String[] numString,int num){//终止条件if(num == digits.length()){//收集result.add(temp.toString());return;}String str = numString[digits.charAt(num) - '0'];//'abc' 'def'//遍历深度 “23”for(int i=0; i<str.length(); i++){temp.append(str.charAt(i));//[a d]backtracking(digits,numString,num + 1);temp.deleteCharAt(temp.length() - 1);}}
}
2、分析
(1)数字与字符串数组的映射关系。
(2)StringBuilder的运用。
day29 | 216.组合总和III 17.电话号码的字母组合相关推荐
- Day25|组合板子|216. 组合总和 III| 17. 电话号码的字母组合
组合板子+剪枝 216. 组合总和 III 剪枝操作? 17. 电话号码的字母组合 216. 组合总和 III class Solution {private:vector<int>tem ...
- LeetCode 216组合总和III 17电话号码的字母组合
文章目录 216组合总和III c++ 代码实现 python 代码实现 17.电话号码的字母组合 c++ 代码实现 python代码实现 216组合总和III 找出所有相加之和为 n 的 k 个数的 ...
- Day25 LeetCode 216. 组合总和 III 17. 电话号码的字母组合
题目:216. 组合总和 III - 力扣(LeetCode) 思路: 1.递归函数参数和返回值:首先需要两个全局变量一维path数组和二维result数组,path数组用来收集路径上的元素,resu ...
- 216.组合总和III 17.电话号码的字母组合
216.组合总和III 回溯的常规思路做这道题: class Solution {List<List<Integer>> list = new ArrayList<> ...
- day25|● 216.组合总和III ● 17.电话号码的字母组合
day25 3.13 回溯第二天 216.组合总和III 链接: 216.组合总和III 思路:本题k相当于树的深度,9(因为整个集合就是9个数)就是树的宽度. class Solution {pri ...
- 攻克代码随想录Day25 | 216. 组合总和 III | 17. 电话号码的字母组合
216. 组合总和 III 在该题中,题目的整体思路与之前的77. 组合思路是相似的.但在本体中,我选择从1-9遍历每一种可能性.然后将与k相等的组合进行判定,若之和与n相等,则将其push进去,否则 ...
- 代码随想录算法训练营第二十五天|216.组合总和III 17.电话号码的字母组合
目录 LeeCode 216.组合总和III LeeCode 17.电话号码的字母组合 LeeCode 216.组合总和III 216. 组合总和 III - 力扣(LeetCode) 思路:本题和 ...
- 代码随想录第25天|216.组合总和III ● 17.电话号码的字母组合
216.组合总和Ⅲ 回溯三部曲 确定递归函数参数 需要一维数组path来存放符合条件的结果,二维数组result来存放结果集. 接下来还需要如下参数: targetSum(int)目标和,也就是题目中 ...
- 代码随想录第22天 | ● 216.组合总和III ● 17.电话号码的字母组合
216.组合总和III /*** @param {number} k* @param {number} n* @return {number[][]}*/ let path = []; let roa ...
最新文章
- 服务器Linux与Windows固件,Linux与windows服务器系统的区别
- 网上商城—管理员删除商品
- docker 查看日志_8个优秀Docker容器监控工具,收藏了
- 22.敏捷估计与规划——Why Agile Planning Works笔记
- 大数据 深度 分页_机器学习、深度学习、大数据 ?傻傻分不清楚?
- linux下如何搜索某个文件,技术|如何在 Linux 中查找一个文件
- linux ps ax tl,Linux常用指令 - osc_wa6fkyf0的个人空间 - OSCHINA - 中文开源技术交流社区...
- STM8S103之IO复用
- 智慧消防技术在安全管理中的应用
- verilog从txt中读取_verilog语言中的文件读写
- Anomaly Detection in Quasi-Periodic TimeSeries Based on Automatic Data Segmentation and Attentional
- Thinkphp6调用企业微信官方weworkapi配置接收消息服务器方法
- arcgis加载项双击没反应
- 萌萌哒身高差(找规律)
- 微信移动支付接口申请——2016年5月版
- 删除一个字符串中的所有数字字符
- 数据库连接池HikariCP
- SkinSB皮肤滚动条库的使用
- TAPA认证培训,TAPA FSR认证内容涉及哪些方面
- 《系统之美》读书笔记(粗读)