二刷主要记录理解不一样的题

一刷地址:day25

今日题目:中等

组合总和III :注意剪枝操作;①sum>n;②path.size()>k

class Solution {LinkedList<Integer> path = new LinkedList();List<List<Integer>> res = new ArrayList();int sum = 0;public List<List<Integer>> combinationSum3(int k, int n) {backtracking(k, n, 1);return res;}void backtracking(int k, int n, int index){if(sum == n && path.size() == k){res.add(new ArrayList(path));return;}if(sum > n || path.size() > k) return;for(int i = index; i <= 9; i++){sum += i;path.add(i);backtracking(k,n,i+1);sum -= i;path.removeLast();}}}

电话号码的字母组合: 每个号码只选一个数进行匹配

class Solution {List<String> res = new ArrayList<>();StringBuilder sb = new StringBuilder();String[] phone = {null,null,"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};public List<String> letterCombinations(String digits) {if(digits==null || digits.length()==0) return res;int n = digits.length();int[] nums = new int[n];for(int i = 0; i < n; i++){nums[i] = Integer.valueOf(digits.substring(i,i+1));}// System.out.println(Arrays.toString(nums));backtracking(nums,0,n);return res;}void backtracking(int[] nums, int index, int n){if(n == sb.length()){res.add(sb.toString());return;}// 获取数字对应的字母 -- 都是从第一个开始int num = nums[index];String str = phone[num];// 添加对应的单词for(int i = 0; i < str.length(); i++){sb.append(String.valueOf(str.charAt(i)));backtracking(nums, index + 1,n);sb.deleteCharAt(sb.length()-1);}}
}

【代码随想录二刷】day 25 | 216.组合总和III 17.电话号码的字母组合相关推荐

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

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

  2. 代码随想录算法训练营第24天25天|● 77. 组合● 216.组合总和III ● 17.电话号码的字母组合

    77组合 看完题后的思路 void f(数组,startIndex) 递归终止 if(startIndex数组长度||path.sizek){ if(path.size==k){ 加入} } 递归 f ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. AI 女神李飞飞最新文章:发展人工智能应该以人为本
  2. 刀片服务器与机架服务器对比
  3. 【Java】 5.9 初始化块
  4. 使用Java8新特性(stream流、Lambda表达式)实现多个List 的笛卡尔乘积 返回需要的List<JavaBean>
  5. This dependency was not found: * !!vue-style-loader!css-loader?……解决方案
  6. centos6+ 将程序 注册到 service进行启动 停止 重启等:以nginx为例,添加nginx脚本
  7. win2008支持mysql asp.net_Win7、win2008中让IIS7支持asp的方法
  8. mysql 存储session
  9. Windows Server 2012 虚拟化实战:网络(一)
  10. c语言实训项目设计设计游戏,C语言实训三贪吃蛇游戏设计.doc
  11. 面试被问到项目架构怎么说呢?
  12. 老哥们 FlexiTimer库怎么用不了呢 ,指点一下小弟
  13. 使用一键hidpi脚本二级logo变大,手动定制,支持Monterey
  14. VTK从分割好的体数据获取等值面的方法(MarchingCube)
  15. linux下连接edb数据库,反汇编及linux下edb的下载
  16. Ubuntu上qtcreator的arm-poky-linux-gnueabi-配置
  17. NormalBlend
  18. shell脚本实例-系统监控
  19. 高校计算机科研项目,jsp204高校科研项目申报系统
  20. AS3文档类调用FLASH元件库中元件

热门文章

  1. 快速鲁棒的多模态遥感影像配准系统(可下载,支持大尺寸遥感影像),性能超越国际著名遥感商业软件ERDAS和ENVI
  2. qq 与 360 打架, qq 无理
  3. 验证码识别---云打码
  4. 数学笔记16——定积分的应用1(对数与面积)
  5. 一文读懂信息安全中的恶意代码、病毒、木马、蠕虫......
  6. C# winform使用SQLite
  7. uniapp项目小逻辑
  8. 区块链拒绝马蜂窝式造假
  9. 将VMProtect集成到应用程序教程之实模式(四):将代码锁定到序列号上
  10. ZingGrid 1.2.7 Crack