当前位置: 首页 > news >正文

【算法刷题day24】Leetcode:216. 组合总和 III、17. 电话号码的字母组合

文章目录

    • Leetcode 216. 组合总和 III
      • 解题思路
      • 代码
      • 总结
    • Leetcode 17. 电话号码的字母组合
      • 解题思路
      • 代码
      • 总结

草稿图网站
java的Deque

Leetcode 216. 组合总和 III

题目:216. 组合总和 III
解析:代码随想录解析

解题思路

回溯三部曲:确定递归函数参数;确定终止条件;单层搜索过程

代码

class Solution {List<List<Integer>> res = new ArrayList<>();List<Integer> paths = new ArrayList<>();int curSum = 0;private void backtracking(int k, int n, int startIndex) {//忘了这个减枝if (curSum > n) return;if (paths.size() == k) {if (curSum == n)res.add(new ArrayList<>(paths));return;}for (int i = startIndex; i <= 9; i++) {paths.add(i);curSum += i;backtracking(k, n, i + 1);paths.remove(paths.size()-1);curSum -= i;}}public List<List<Integer>> combinationSum3(int k, int n) {backtracking(k, n, 1);return res;}
}

总结

暂无

Leetcode 17. 电话号码的字母组合

题目:17. 电话号码的字母组合
解析:代码随想录解析

解题思路

函数参数遍历数字,函数内遍历数字按键对应的字母

代码

class Solution {List<String> res = new ArrayList<>();StringBuilder sb = new StringBuilder();private void backtracking(String digits, String[] numString, int startIndex) {if (startIndex == digits.length()) {if (sb.length() > 0)res.add(sb.toString());return;}String tmp = numString[digits.charAt(startIndex) - '0'];for (int i = 0; i < tmp.length(); i++) {sb.append(tmp.charAt(i));backtracking(digits, numString, startIndex + 1);sb.deleteCharAt(sb.length() - 1);}}public List<String> letterCombinations(String digits) {String[] NUMSTRING = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs","tuv", "wxyz"};backtracking(digits, NUMSTRING, 0);return res;}
}

总结

暂无

http://www.lryc.cn/news/338372.html

相关文章:

  • 一体化泵站的生产制造流程怎样
  • 【1】C++设计模式之【单例模式】
  • 软件设计模式之解释器模式
  • java Web课程管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc
  • Electron 桌面端应用的使用 ---前端开发
  • 【SpringBoot:详解Bean装配】
  • 前端如何将接口返回的码值转成对应的中文展示呢?
  • 智慧公厕中的大数据、云计算和物联网技术引领未来公厕管理革命
  • Excel与项目管理软件比较?哪个是项目组合管理的最佳选择?
  • 过程控制风格的软件架构设计概念及其实际应用
  • WPF 编辑器模式中隐藏/显示该元素
  • 分布式事务 - 个人笔记 @by_TWJ
  • 解决前端笔记本电脑屏幕显示缩放比例125%、150%对页面大小的影响问题--数据可视化大屏
  • 【PG-1】PostgreSQL体系结构概述
  • jq命令简易教程——Linux中处理JSON数据的利器
  • 前端开发攻略---Vue实现防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。
  • 在Go语言中复制sync类型
  • Golang | Leetcode Golang题解之第25题K个一组翻转链表
  • 【初学】前后端flask+vue组合GET案例
  • 计算机科学与技术CS考研408资料
  • ACID模型是什么
  • 【Linux】基础IO----理解缓冲区
  • java学习之路-继承
  • Linux系统——Elasticsearch企业级日志分析系统
  • 多协议接入视频汇聚EasyCVR平台vs.RTSP安防视频EasyNVR平台:设备分组的区别
  • Spring Security Oauth2 之 理解OAuth 2.0授权流程
  • mysql题目4
  • GFS部署实验
  • 最前沿・量子退火建模方法(1) : subQUBO讲解和python实现
  • 如何在Linux部署MeterSphere并实现公网访问进行远程测试工作