【代码随想录二刷】day 25 | 216.组合总和III 17.电话号码的字母组合
二刷主要记录理解不一样的题
一刷地址: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.电话号码的字母组合相关推荐
- 代码随想录第25天|216.组合总和III ● 17.电话号码的字母组合
216.组合总和Ⅲ 回溯三部曲 确定递归函数参数 需要一维数组path来存放符合条件的结果,二维数组result来存放结果集. 接下来还需要如下参数: targetSum(int)目标和,也就是题目中 ...
- 代码随想录算法训练营第24天25天|● 77. 组合● 216.组合总和III ● 17.电话号码的字母组合
77组合 看完题后的思路 void f(数组,startIndex) 递归终止 if(startIndex数组长度||path.sizek){ if(path.size==k){ 加入} } 递归 f ...
- 攻克代码随想录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) 思路:本题和 ...
- 代码随想录第22天 | ● 216.组合总和III ● 17.电话号码的字母组合
216.组合总和III /*** @param {number} k* @param {number} n* @return {number[][]}*/ let path = []; let roa ...
- Day25 LeetCode 216. 组合总和 III 17. 电话号码的字母组合
题目:216. 组合总和 III - 力扣(LeetCode) 思路: 1.递归函数参数和返回值:首先需要两个全局变量一维path数组和二维result数组,path数组用来收集路径上的元素,resu ...
- LeetCode 216组合总和III 17电话号码的字母组合
文章目录 216组合总和III c++ 代码实现 python 代码实现 17.电话号码的字母组合 c++ 代码实现 python代码实现 216组合总和III 找出所有相加之和为 n 的 k 个数的 ...
- day29 | 216.组合总和III 17.电话号码的字母组合
文章目录 216.组合总和III 1.代码(AC) 2.分析 17.电话号码的字母组合 1.代码 2.分析 216.组合总和III 1.代码(AC) class Solution {List<L ...
- 216.组合总和III 17.电话号码的字母组合
216.组合总和III 回溯的常规思路做这道题: class Solution {List<List<Integer>> list = new ArrayList<> ...
最新文章
- AI 女神李飞飞最新文章:发展人工智能应该以人为本
- 刀片服务器与机架服务器对比
- 【Java】 5.9 初始化块
- 使用Java8新特性(stream流、Lambda表达式)实现多个List 的笛卡尔乘积 返回需要的List<JavaBean>
- This dependency was not found: * !!vue-style-loader!css-loader?……解决方案
- centos6+ 将程序 注册到 service进行启动 停止 重启等:以nginx为例,添加nginx脚本
- win2008支持mysql asp.net_Win7、win2008中让IIS7支持asp的方法
- mysql 存储session
- Windows Server 2012 虚拟化实战:网络(一)
- c语言实训项目设计设计游戏,C语言实训三贪吃蛇游戏设计.doc
- 面试被问到项目架构怎么说呢?
- 老哥们 FlexiTimer库怎么用不了呢 ,指点一下小弟
- 使用一键hidpi脚本二级logo变大,手动定制,支持Monterey
- VTK从分割好的体数据获取等值面的方法(MarchingCube)
- linux下连接edb数据库,反汇编及linux下edb的下载
- Ubuntu上qtcreator的arm-poky-linux-gnueabi-配置
- NormalBlend
- shell脚本实例-系统监控
- 高校计算机科研项目,jsp204高校科研项目申报系统
- AS3文档类调用FLASH元件库中元件
热门文章
- 快速鲁棒的多模态遥感影像配准系统(可下载,支持大尺寸遥感影像),性能超越国际著名遥感商业软件ERDAS和ENVI
- qq 与 360 打架, qq 无理
- 验证码识别---云打码
- 数学笔记16——定积分的应用1(对数与面积)
- 一文读懂信息安全中的恶意代码、病毒、木马、蠕虫......
- C# winform使用SQLite
- uniapp项目小逻辑
- 区块链拒绝马蜂窝式造假
- 将VMProtect集成到应用程序教程之实模式(四):将代码锁定到序列号上
- ZingGrid 1.2.7 Crack