每日算法Day15【组合、组合总和III、电话号码的字母组合】
77. 组合
算法链接:
77. 组合 - 力扣(LeetCode)
类型: 回溯
难度: 中等
回溯三步法:
1、确定参数返回值
2、确定终止条件
3、单层搜索逻辑
剪枝操作:
当path容量超过k时的数据可以不用遍历,故遍历边界条件判断:
for(int i = startIndex;i<= n - (k - path.size()) + 1 ; i++)
题解:
class Solution {List<List<Integer>> res = new ArrayList<>();LinkedList<Integer> path = new LinkedList<>();public List<List<Integer>> combine(int n, int k) {backtracking(n,k,1);return res;}void backtracking(int n,int k,int startIndex){if(path.size()==k){res.add(new ArrayList<>(path));return;}for(int i = startIndex;i<= n - (k - path.size()) + 1 ; i++){path.add(i);backtracking(n,k,i+1);path.removeLast();}}
}
216.组合总和III
算法链接:
216. 组合总和 III - 力扣(LeetCode)
类型: 回溯
难度: 中等
剪枝思路:
当路径总和大于n或者路径数大于k时,return
题解:
class Solution {List<List<Integer>> res = new ArrayList<>();LinkedList<Integer> path = new LinkedList<>();int sum = 0;public List<List<Integer>> combinationSum3(int k, int n) {getRes(k,n,1);return res;}void getRes(int k,int n,int startIdx){if (sum > n) return;if (path.size() > k) return;if (path.size()==k && sum == n){res.add(new ArrayList<>(path));return;}for(int i = startIdx;i<= 9 ; i++){path.add(i);sum+=i;getRes(k,n,i+1);sum-=i;path.removeLast();}}
}
17.电话号码的字母组合
算法链接:
17. 电话号码的字母组合 - 力扣(LeetCode)
类型: 回溯
难度: 中等
思路:将题意构建二叉树数据结构,并且使用数组存储号码值
题解:
class Solution {List<String> res = new ArrayList<>();String[] numString = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};StringBuilder path = new StringBuilder();public List<String> letterCombinations(String digits) {if(digits == null || digits.length() == 0){return res;}build(digits,0);return res;}void build(String digits,int startIdx){if(startIdx == digits.length()){res.add(path.toString());return;}String str = numString[digits.charAt(startIdx)-'0'];for(int i = 0;i<str.length();i++){path.append(str.charAt(i));build(digits,startIdx+1);path.deleteCharAt(path.length()-1);}}
}
相关文章:
![](https://i-blog.csdnimg.cn/direct/d6f50f44528a4805a79e4a4ee80b2403.png)
每日算法Day15【组合、组合总和III、电话号码的字母组合】
77. 组合 算法链接: 77. 组合 - 力扣(LeetCode) 类型: 回溯 难度: 中等 回溯三步法: 1、确定参数返回值 2、确定终止条件 3、单层搜索逻辑 剪枝操作: 当path容量超过k时的数据可以不用遍历,故遍历边界条件判断: …...
![](https://i-blog.csdnimg.cn/direct/c30eb28c00ac4cfabdad12a5399c34e7.png)
C语言教程——指针进阶(2)
目录 一、函数指针数组 1.1函数指针数组写法 1.2函数指针用途 二、指向函数指针数组的指针 2.1概念 三、回调函数 3.1用法 3.2qsort排序 总结 前言 我们接着上一篇的函数指针往下学习。 一、函数指针数组 1.1函数指针数组写法 我们都知道指针数组,里面可以…...
![](https://www.ngui.cc/images/no-images.jpg)
调和级数不为整数的证明
文章目录 1. 问题引入2. 证明2.1 引理12.2 引理22.3 引理3:2.4 核心证明: 3. 参考 1. 问题引入 s ( n ) 1 1 2 1 3 ⋯ 1 n , n ∈ N ∗ , n ≥ 2 s(n) 1\frac{1}{2}\frac{1}{3}\cdots\frac{1}{n}, \quad \\n \in N^*, n \ge2 s(n)12131⋯n1,…...
![](https://i-blog.csdnimg.cn/img_convert/bb182e637f36dc6ffe146dac958727bd.png)
基于微信小程序的在线学习系统springboot+论文源码调试讲解
第4章 系统设计 一个成功设计的系统在内容上必定是丰富的,在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值,吸引更多的访问者访问系统,以及让来访用户可以花费更多时间停留在系统上,则表明该系统设计得比较专…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=O83A)
基于 Boost.Asio 和 Boost.Beast 的异步 HTTP 服务器(学习记录)
已完成功能: 支持 GET 和 POST 请求的路由与回调处理。 解析URL请求。 单例模式 管理核心业务逻辑。 异步 I/O 技术和 定时器 控制超时。 通过回调函数注册机制,可以灵活地为不同的 URL 路由注册处理函数。 1. 项目背景 1.1 项目简介 本项目是一个基于…...
![](https://i-blog.csdnimg.cn/img_convert/ff95ee4eb6e4507b6389f70a5122935e.png)
有机物谱图信息的速查技巧有哪些?
谱图信息是化学家解读分子世界的“语言”,它们在化学研究的各个领域都发挥着不可或缺的作用。它们是理解和确定分子结构的关键,对化学家来说极为重要,每一种谱学技术都提供了不同的视角来观察分子,从而揭示其独特的化学和物理特性…...
![](https://www.ngui.cc/images/no-images.jpg)
Eureka缓存机制
一、Eureka的CAP特性 Eureka是一个AP系统,它优先保证可用性(A)和分区容错性(P),而不保证强一致性(C)。这种设计使得Eureka在分布式系统中能够应对各种故障和分区情况,保…...
![](https://www.ngui.cc/images/no-images.jpg)
【LC】78. 子集
题目描述: 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出࿱…...
![](https://i-blog.csdnimg.cn/direct/6884a4b3f1de459982f1398e55849020.jpg)
协同过滤算法私人诊所系统|Java|SpringBoot|VUE|
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SpringBoot、Mybatis-Plus、VUE、jquery,html 5⃣️…...
![](https://www.ngui.cc/images/no-images.jpg)
Docker部署Naocs-- 超细教程
Docker 拉取镜像 docker pull nacos/nacos-server:v2.2.0 挂载目录 如果不是root账号 前面加sudo 或者 切换root账号 su root(命令) mkdir -p /mydata/nacos/logs/ #新建logs目录 mkdir -p /mydata/nacos/conf/ #新建conf目录 启动容器…...
![](https://i-blog.csdnimg.cn/direct/b57302f0a2dc46a0955107d953125a78.png)
[java基础-集合篇]优先队列PriorityQueue结构与源码解析
优先队列PriorityQueue 优先级队列表示为平衡二进制堆: queue[n] 的两个子级是 queue[2*n1] 和 queue[2*(n1)]。 注:左子节点index2*parentIndex1,右子节点index2*parentIndex2,源码中计算parent位置时就是这样反过来计算的 优…...
![](https://www.ngui.cc/images/no-images.jpg)
12. C语言 数组与指针(深入理解)
本章目录: 前言1. 什么是数组?2. 数组的声明与初始化声明数组初始化数组 3. 访问数组元素遍历数组 4. 获取数组长度使用 sizeof 获取长度使用宏定义简化 5. 数组与指针数组名与指针的区别使用指针操作数组 6. 多维数组遍历多维数组 7. 数组作为函数参数8. 高级技巧与…...
![](https://i-blog.csdnimg.cn/direct/12b869b9ca8347d9a084a48c43c44feb.jpeg)
Postman接口测试基本操作
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 Postman-获取验证码 需求:使用Postman访问验证码接口,并查看响应结果。 地址:http://kdtx-test.itheima.net/api/captchaIm…...
![](https://img-blog.csdnimg.cn/direct/67c64049147741939b85489caefbb597.png)
MySQL--2.1MySQL的六种日志文件
大家好,我们来说一下MySQL的6中日志文件。 1.查询日志 查询日志主要记录mysql的select查询的,改配置是默认关闭的。不推荐开启,因为会导致大量查询日志文件储存占用你的空间。 举例查询一下 select * from class; 开启查询日志的命…...
![](https://www.ngui.cc/images/no-images.jpg)
spring task使用
Spring Task 简介 Spring Task 是 Spring 框架原生自带的任务调度框架,它犹如一把瑞士军刀,为开发者提供了丰富多样的功能,助力轻松创建和管理定时任务。相较于其他一些第三方任务调度框架,Spring Task 最大的优势在于其与 Sprin…...
![](https://i-blog.csdnimg.cn/direct/0420b3c4b9e44b759b06eafb13e02603.png)
【FPGA】时序约束与分析
设计约束 设计约束所处环节: 约束输入 分析实现结果 设计优化 设计约束分类: 物理约束:I/O接口约束(例如引脚分配、电平标准设定等物理属性的约束)、布局约束、布线约束以及配置约束 时序约束:设计FP…...
![](https://www.ngui.cc/images/no-images.jpg)
LLM的MoE由什么构成:门控网络,专家网络
LLM的MoE由什么构成:门控网络,专家网络 目录 LLM的MoE由什么构成:门控网络,专家网络专家网络门控网络MoE在联邦学习中的使用及原理专家网络 定义与特点:是一组独立的模型,每个模型都负责处理某个特定的子任务或学习输入空间的特定部分。这些专家可以是简单的线性回归模型…...
![](https://www.ngui.cc/images/no-images.jpg)
HTML-多媒体标签
除了图像,网页还可以放置视频和音频。 1.<video> <video>标签是一个块级元素,用于放置视频。如果浏览器支持加载的视频格式,就会显示一个播放器,否则显示<video>内部的子元素。 <video src"example.…...
![](https://i-blog.csdnimg.cn/direct/ff9a172faa054cfeb334b75bf7ba870c.png)
MySQL笔记大总结20250108
Day2 1.where (1)关系运算符 select * from info where id>1; select * from info where id1; select * from info where id>1; select * from info where id!1;(2)逻辑运算符 select * from info where name"吴佩奇" and age19; select * from info wh…...
![](https://i-blog.csdnimg.cn/direct/a5c5039a429d40818d5797b8bc276d2c.png)
stm32week3
stm32学习 二.外设 8.TIM输出比较 OC(output compare)输出比较 输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0、翻转操作,用于输出一定频率和占空比的PWM波形 每个高级定时器和通用定时器都拥有4个输出比较通道 高级定时器的…...
![](https://i-blog.csdnimg.cn/direct/68b308d3e05c44c3a857a6305467a69c.png)
uniapp 的uni.getRecorderManager() 录音功能小记
官网上明确说的是全局唯一并且只是获取对象,所以会导致一个问题就是,当你多个页面要用到这个对象的时候,会发现 onStop 方法会被覆盖,导致调用结果不是自己想要的 解决办法也简单粗暴,在需要用到的界面重新覆盖onStop…...
![](https://i-blog.csdnimg.cn/direct/54ae0a0f4a3949c58de3aa9f55f7ddd5.png)
【面试题】技术场景 4、负责项目时遇到的棘手问题及解决方法
工作经验一年以上程序员必问问题 面试题概述 问题为在负责项目时遇到的棘手问题及解决方法,主要考察开发经验与技术水平,回答不佳会影响面试印象。提供四个回答方向,准备其中一个方向即可。 1、设计模式应用方向 以登录为例,未…...
![](https://i-blog.csdnimg.cn/direct/cf03079d09714b22bc75cec94fdaeb23.png)
RT-DETR代码详解(官方pytorch版)——参数配置(1)
前言 RT-DETR虽然是DETR系列,但是它的代码结构和之前的DETR系列代码不一样。 它是通过很多的yaml文件进行参数配置,和之前在train.py的parser argparse.ArgumentParser()去配置所有参数不同,所以刚开始不熟悉代码的时候可能不知道在哪儿修…...
![](https://i-blog.csdnimg.cn/direct/ed0f1542452c468fa025d32417286284.png)
腾讯云AI代码助手编程挑战赛-凯撒密码解码编码器
作品简介 在CTFer选手比赛做crypto的题目时,一些题目需要自己去解密,但是解密的工具大部分在线上,而在比赛过程中大部分又是无网环境,所以根据要求做了这个工具 技术架构 python语言的tk库来完成的GUI页面设计,通过…...
![](https://i-blog.csdnimg.cn/direct/41fe23646d834c15b7272dfef3da865f.png)
搭建docker私有化仓库Harbor
Docker私有仓库概述 Docker私有仓库介绍 Docker私有仓库是个人、组织或企业内部用于存储和管理Docker镜像的存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部…...
![](https://i-blog.csdnimg.cn/direct/551c00a566ce429fbd45b1e2ae676cc7.png#pic_center)
【Vim Masterclass 笔记09】S06L22:Vim 核心操作训练之 —— 文本的搜索、查找与替换操作(第一部分)
文章目录 S06L22 Search, Find, and Replace - Part One1 从光标位置起,正向定位到当前行的首个字符 b2 从光标位置起,反向查找某个字符3 重复上一次字符查找操作4 定位到目标字符的前一个字符5 单字符查找与 Vim 命令的组合6 跨行查找某字符串7 Vim 的增…...
![](https://www.ngui.cc/images/no-images.jpg)
GIC中断分组介绍(IMX6ull为例)
一、Cortex-A7内核中断 Cortex-A7内核具有多个中断类型,但其中最重要的是复位中断和IRQ(普通中断请求)中断。对于IMX6ULL而言,主要关注的是IRQ中断,因为外部设备和内部事件通常都会触发这类中断。 从左到右 中断控制…...
![](https://i-blog.csdnimg.cn/direct/a68c7153c92a4389b9d2ec3ddb297e31.png)
计算机网络期末复习(知识点)
概念题 在实际复习之前,可以看一下这个视频将网络知识串一下,以便更好地复习:【你管这破玩意叫网络?】 网络规模的分类 PAN(个人区域网络):用于个人设备间的连接,如手机与蓝牙耳机…...
![](https://i-blog.csdnimg.cn/direct/a9e36bd61cb746728bed50efadcd15d7.png)
Apache XMLBeans 一个强大的 XML 数据处理框架
Apache XMLBeans 是一个用于处理 XML 数据的 Java 框架,它提供了一种方式将 XML Schema (XSD) 映射到 Java 类,从而使得开发者可以通过强类型化的 Java 对象来访问和操作 XML 文档。下面将以一个简单的案例说明如何使用 Apache XMLBeans 来解析、生成和验…...
![](https://i-blog.csdnimg.cn/img_convert/a823154f0283714a7911c9e827a61704.jpeg)
飞凌嵌入式i.MX8M Mini核心板已支持Linux6.1
飞凌嵌入式FETMX8MM-C核心板现已支持Linux6.1系统,此次升级不仅使系统功能更加丰富,还通过全新BSP实现了内存性能的显著提升。 基于NXP i.MX8M Mini处理器设计开发的飞凌嵌入式FETMX8MM-C核心板,拥有4个Cortex-A53高性能核和1个Cortex-M4实时…...
![](/images/no-images.jpg)
php除了 wordpress/谷歌广告代运营
聚合操作符 startWith操作符startWithArray操作符concat/concatArray操作符merge/mergeArray操作符concatDelayError/mergeDelayError操作符zip操作符combineLatest操作符combineLatestDelayError操作符reduce操作符count操作符collect操作符 startWith startWith操作符主要…...
![](/images/no-images.jpg)
潍坊做网站维护费用/无锡网站建设公司
问题现象 在使用模拟器调试时,出现以下错误提示,导致不能连续运行: *** Error 65: Access violation at 0x40000004 : No write permission 解决措施 将以下内容保存为debug_Cortex-M_use_simulator.ini脚本文件,并根据CPU的外…...
![](https://www.oschina.net/img/hot3.png)
苏州网站建设公司鹅鹅鹅/网址导航哪个好
2019独角兽企业重金招聘Python工程师标准>>> Swift目前已经支持keystone认证,不过官方的安装文档中还使用了TempAuth,这篇翻译,关于auth帮助我们更好的理解swift auth, The Auth System 认证系统 TempAuth Swift的认证系统松散的基…...
![](/images/no-images.jpg)
怎样在手机上创建网站/做一个app软件大概要多少钱
Ubuntu 18.04安装anaconda3详细教程 : https://blog.csdn.net/qq_30263737/article/details/115024412?spm1001.2014.3001.5501 sudo apt install jupyterpython -m IPython notebook...
![](https://img-blog.csdnimg.cn/20190228202111932.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L29oZGFqaW5n,size_16,color_FFFFFF,t_70)
沈阳博士男科医院好吗/seo范畴有哪些
一、时间选择器 有时候我们做页面时需要时间选择器,先上效果图 看了下android studio,没有这个样式的控件,找了下度娘发现这个样式的控件需要用TextView后台代码实现。 假设新建页面 sheqing_list: activity_sheqing_list.xml …...
![](/images/no-images.jpg)
狍与女人做爰网站/百度客服24小时人工服务在线咨询
题目:求多个大数的和 把两个大数的求和写成函数,每次输入都用一次,解决! 直接上代码 1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 using namespace std;5 char sa[1000],sb[1000];6 int a[…...