216. Combination Sum III

回溯

class Solution:def __init__(self):self.path = []self.res = []def backtracking(self, targetSum, curSum, count, startIndex):# 终止条件if len(self.path) == count:if curSum == targetSum:self.res.append(self.path.copy())returnfor i in range(startIndex, 10):self.path.append(i)curSum += iself.backtracking(targetSum, curSum, count, i+1)    # 递归curSum -= i         # 回溯self.path.pop()def combinationSum3(self, k: int, n: int) -> List[List[int]]:self.backtracking(n, 0, k, 1)return self.res

回溯,剪枝优化

已选元素总和如果已经大于targetSum了,那么往后遍历就没有意义了,直接剪掉。

class Solution:def __init__(self):self.path = []self.res = []def backtracking(self, targetSum, curSum, count, startIndex):# 终止条件if len(self.path) == count:if curSum == targetSum:self.res.append(self.path.copy())returnfor i in range(startIndex, 10):self.path.append(i)curSum += iif curSum > targetSum:  # 剪枝curSum -= i         # 剪枝之前先把回溯做了self.path.pop()returnself.backtracking(targetSum, curSum, count, i+1)    # 递归curSum -= i         # 回溯self.path.pop()def combinationSum3(self, k: int, n: int) -> List[List[int]]:self.backtracking(n, 0, k, 1)return self.res

17. Letter Combinations of a Phone Number

这个index是记录遍历第几个数字了,就是用来遍历digits的(题目中给出数字字符串),同时index也表示树的深度。

class Solution:def __init__(self):self.letterMap = ['','','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']self.string = []self.res = []def backtracking(self, digits, index):# 终止条件if index == len(digits):self.res.append(''.join(self.string.copy()))returndigit = int(digits[index])for i in range(len(self.letterMap[digit])):self.string.append(self.letterMap[digit][i])self.backtracking(digits, index + 1)self.string.pop()   # 回溯def letterCombinations(self, digits: str) -> List[str]:if digits == "": return []self.backtracking(digits, 0)return self.res

Leetcode| 216. 组合总和III、17. 电话号码的字母组合 Day25相关推荐

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

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

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

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

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

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

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

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

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

    文章目录 216.组合总和III 1.代码(AC) 2.分析 17.电话号码的字母组合 1.代码 2.分析 216.组合总和III 1.代码(AC) class Solution {List<L ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 借花献佛!docker讲解视频
  2. JS浮点数运算Bug的解决办法
  3. jetty 添加basic auth
  4. 第23天学习Java的笔记-抽象类
  5. python list append tuple_Python之list、tuple、dict、set
  6. Windows下MySQL数据库更改数据存储位置
  7. python中dtypes_Dataframe创建及index,columns,values,dtypes等属性介绍
  8. 【免费毕设】PHP课程网站络管理系统(源代码+论文)
  9. [C/C++11语法]_[0基础]_[lamba 表达式介绍]
  10. 微信小程序 - 贝塞尔曲线(购物车效果)
  11. 破解Windows系统密码---利用PE系统破解
  12. python是高级语言还是低级语言_机械语言/汇编语言/低级语言/高级语言各是指的什么...
  13. 初识C语言及开始跨考计算机的心路历程
  14. 安卓项目查手机电量功能_Android获取手机电池电量用法实例
  15. 京东校招java工程师_2017年京东校招Java研发笔试编程第1题
  16. flutter web h5微信授权与支付
  17. 【产品】USB设备VID和PID查询
  18. 【无标题】利用C#连接阿里云RSD数据库mysql服务器
  19. java收到邮件后短信提醒_java邮件发送和短信发送(一)
  20. 中国古代商人秘而不宣的经商十诀

热门文章

  1. XMUTOJ-默罕默德的炸弹
  2. Docker系列之五:Docker 三剑客之 Docker Swarm
  3. React Native 实践之携程 Moles 框架
  4. SSD掉电保护也是一门艺术
  5. 天猫双十一红包口令玩法
  6. MvvmLazy Android懒人框架
  7. 如何设置苹果Mac菜单栏的时间与日期显示
  8. python——Matplotlib饼图、直方图的绘制
  9. 苹果编程新纪元 之 Swift
  10. 有机无脂牛奶的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告