文章目录

  • 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.电话号码的字母组合相关推荐

  1. Day25|组合板子|216. 组合总和 III| 17. 电话号码的字母组合

    组合板子+剪枝 216. 组合总和 III 剪枝操作? 17. 电话号码的字母组合 216. 组合总和 III class Solution {private:vector<int>tem ...

  2. LeetCode 216组合总和III 17电话号码的字母组合

    文章目录 216组合总和III c++ 代码实现 python 代码实现 17.电话号码的字母组合 c++ 代码实现 python代码实现 216组合总和III 找出所有相加之和为 n 的 k 个数的 ...

  3. Day25 LeetCode 216. 组合总和 III 17. 电话号码的字母组合

    题目:216. 组合总和 III - 力扣(LeetCode) 思路: 1.递归函数参数和返回值:首先需要两个全局变量一维path数组和二维result数组,path数组用来收集路径上的元素,resu ...

  4. 216.组合总和III 17.电话号码的字母组合

    216.组合总和III 回溯的常规思路做这道题: class Solution {List<List<Integer>> list = new ArrayList<> ...

  5. day25|● 216.组合总和III ● 17.电话号码的字母组合

    day25 3.13 回溯第二天 216.组合总和III 链接: 216.组合总和III 思路:本题k相当于树的深度,9(因为整个集合就是9个数)就是树的宽度. class Solution {pri ...

  6. 攻克代码随想录Day25 | 216. 组合总和 III | 17. 电话号码的字母组合

    216. 组合总和 III 在该题中,题目的整体思路与之前的77. 组合思路是相似的.但在本体中,我选择从1-9遍历每一种可能性.然后将与k相等的组合进行判定,若之和与n相等,则将其push进去,否则 ...

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

    目录 LeeCode 216.组合总和III LeeCode 17.电话号码的字母组合 LeeCode 216.组合总和III 216. 组合总和 III - 力扣(LeetCode) 思路:本题和 ...

  8. 代码随想录第25天|216.组合总和III ● 17.电话号码的字母组合

    216.组合总和Ⅲ 回溯三部曲 确定递归函数参数 需要一维数组path来存放符合条件的结果,二维数组result来存放结果集. 接下来还需要如下参数: targetSum(int)目标和,也就是题目中 ...

  9. 代码随想录第22天 | ● 216.组合总和III ● 17.电话号码的字母组合

    216.组合总和III /*** @param {number} k* @param {number} n* @return {number[][]}*/ let path = []; let roa ...

最新文章

  1. 服务器Linux与Windows固件,Linux与windows服务器系统的区别
  2. 网上商城—管理员删除商品
  3. docker 查看日志_8个优秀Docker容器监控工具,收藏了
  4. 22.敏捷估计与规划——Why Agile Planning Works笔记
  5. 大数据 深度 分页_机器学习、深度学习、大数据 ?傻傻分不清楚?
  6. linux下如何搜索某个文件,技术|如何在 Linux 中查找一个文件
  7. linux ps ax tl,Linux常用指令 - osc_wa6fkyf0的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. STM8S103之IO复用
  9. 智慧消防技术在安全管理中的应用
  10. verilog从txt中读取_verilog语言中的文件读写
  11. Anomaly Detection in Quasi-Periodic TimeSeries Based on Automatic Data Segmentation and Attentional
  12. Thinkphp6调用企业微信官方weworkapi配置接收消息服务器方法
  13. arcgis加载项双击没反应
  14. 萌萌哒身高差(找规律)
  15. 微信移动支付接口申请——2016年5月版
  16. 删除一个字符串中的所有数字字符
  17. 数据库连接池HikariCP
  18. SkinSB皮肤滚动条库的使用
  19. TAPA认证培训,TAPA FSR认证内容涉及哪些方面
  20. 《系统之美》读书笔记(粗读)

热门文章

  1. Vivo手机获取文件管理器里的文件路径为空
  2. 计算机组成原理实验:微程序控制实验
  3. Unity3d+moba+草丛视野
  4. mouseover,mouseout,mouseenter,mouseleave,hover
  5. 相濡以沫还是想忘于江湖
  6. oracle exp 排除某些表导出其他表
  7. 【计算机网络实验】停止等待ARQ算法模拟(Python实现)
  8. ThinkPad E450(c)添加或者更换内存条的一些问题
  9. park,clark和ipark浅析
  10. (转)逃脱者可获生机(上)