Day25 Golang (回溯) 216.组合总和III 17.电话号码的字母组合

//02 216.组合总和III
package mainimport "fmt"func combinationSum3(k int, n int) [][]int {// 全局变量path := []int{}res := [][]int{}// 回溯函数var backtracking func(targetSum, sum, k, startindex int)backtracking = func(targetSum, sum, k, startindex int) {// 终止条件if sum > targetSum { //和已经大于目标和(剪枝)return}if len(path) == k {if sum == targetSum {temp := make([]int, k)copy(temp, path) //深拷贝结果res = append(res, temp)}return}// for循环遍历每个结点,注意剪枝for i := startindex; i <= 9-(k-len(path))+1; i++ {sum += ipath = append(path, i)backtracking(targetSum, sum, k, i+1) //回溯sum -= ipath = path[:len(path)-1]}return}backtracking(n, 0, k, 1)return res}
func main() {res := combinationSum3(3, 9)fmt.Printf("res: %v\n", res) //res: [[1 2 6] [1 3 5] [2 3 4]]
}
//03 17.电话号码的字母组合package mainimport "fmt"func letterCombinations(digits string) []string {if digits == string("") {return nil}//数字字母映射letterMap := []string{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}// 全局变量s := []byte{}res := []string{}//递归函数var backtracking func(digits string, index int)backtracking = func(digits string, index int) {//终止条件if index == len(digits) {temp := string(s)res = append(res, temp)return}digit := int(digits[index] - '0')later := letterMap[digit]//for循环遍历每个结点for i := 0; i < len(later); i++ {s = append(s, later[i])backtracking(digits, index+1)s = s[:len(s)-1]}return}backtracking(digits, 0)return res
}
func main() {res := letterCombinations("23")fmt.Printf("res: %v\n", res)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flask基于django大数据的证券股票分析系统python可视化大屏

证券分析系统采用B/S架构&#xff0c;数据库是MySQL。网站的搭建与开发采用了先进的Python进行编写&#xff0c;使用了Django框架。该系统从两个对象&#xff1a;由管理员和用户来对系统进行设计构建。主要功能包括&#xff1a;个人信息修改&#xff0c;对股票信息、股票买入、…

XML传参方式

export function groupLoginAPI(xmlData) {return http.post(/tis/group/1.0/login, xmlData, {headers: {Content-Type: application/xml,X-Requested-With: AAServer/4.0,}}) }import {groupLoginAPI} from "../api/user"; function (e) { //xml格式传参let groupX…

讲解selenium 获取href find_element_by_xpath

目录 讲解selenium获取href - find_element_by_xpath 什么是XPath&#xff1f; 使用find_element_by_xpath获取href Selenium的特点和优势 Selenium的应用场景 Selenium的核心组件 总结 讲解selenium获取href - find_element_by_xpath Selenium是一个常用的自动化测试工…

网络安全全栈培训笔记(60-服务攻防-中间件安全CVE复现WeblogicJenkinsGlassFish)

第60天 服务攻防-中间件安全&CVE复现&Weblogic&Jenkins&GlassFish 知识点: 中间件及框架列表: lIS,Apache,Nginx,Tomcat,Docker,Weblogic,JBoos,WebSphere,Jenkins, GlassFish,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Sprng,Flask,jQuery 1、中间件-Web…

【C/C++ 10】扫雷小游戏

一、题目 写一个扫雷小游戏&#xff0c;每次输入一个坐标&#xff0c;若该处是地雷&#xff0c;则游戏失败&#xff0c;若该处不是地雷&#xff0c;则显示周围地雷数量&#xff0c;若扫除全部非地雷区域&#xff0c;则扫雷成功。 二、算法 设置两张地图&#xff08;二维数组&…

chisel decoupled

Decoupled 即为接口包装一层valid 和 ready &#xff0c;decoupled 默认方向为输出&#xff0c;如果需要输入&#xff0c;可以加.flip, Decoupled 可以直接调用Bundle或者Bits&#xff0c;Bundle 内的端口也应该用bits定义 注意: ready和valid不能组合耦合&#xff0c;否则可能…

C# SSH.NET 长命令及时返回

在SSH中执行长时间的命令&#xff0c;SSH.NET及时在文本框中返回连续显示结果。 c# - Execute long time command in SSH.NET and display the results continuously in TextBox - Stack Overflow 博主管理了一个服务器集群&#xff0c;准备上自动巡检工具&#xff0c;测试在…

Linux Rootkit实验|01 基于修改系统调用表的Hook

Linux Rootkit实验&#xff5c;01 基于修改系统调用表的Hook 文章目录 Linux Rootkit实验&#xff5c;01 基于修改系统调用表的Hook实验说明实验环境实验过程一 基于修改sys_call_table的系统调用挂钩1 寻找sys_call_table内存地址2 关掉写保护3 修改sys_call_table 二 基于系统…

AI新工具(20240203) 文心一言APP数字分身;HuggingChat Assistants等

文心一言APP数字分身-一键生成专属数字分身 文心一言数字分身是一项新功能&#xff0c;用户只需一张照片和录制三句语音&#xff0c;就能创建一个专属的数字分身。这个数字分身还支持个性化定义名称、声音、MBTI性格等&#xff0c;用户可以选择是否公开自己的数字分身。这个功…

算法总结归纳(第十一天)(部分数据结构、图论(部分))

目录 一、trie树 题目描述&#xff1a; 输入格式 输出格式 输入样例&#xff1a; 输出样例&#xff1a; ①、思路 ②、代码实现 二、并查集 1、样例 题目描述&#xff1a; 输入格式 输出格式 输入样例&#xff1a; 输出样例&#xff1a; ①、思路 ②、代码实现…

概率论中的全概率公式、贝叶斯公式解析

全概率公式 定义 全概率公式是用来计算一个事件的概率&#xff0c;这个事件可以通过几个互斥事件的并集来表示。这几个互斥事件称为“完备事件系”。实质是由原因推结果。 公式 用途 全概率公式通常用于计算一个事件的总概率&#xff0c;特别是当这个事件与几个不同的因素相关…

C++进阶--C++11 lambda表达式

C进阶--C11 lambda表达式 一、lambda表达式的概念二、lambda表达式的语法2.1 lambda表达式语法格式2.2 lambda表达式捕获列表说明 三、lambda表达式交换两个数3.1 标准写法3.2 利用捕捉列表进行捕捉3.3 利用捕捉列表进行捕捉 四、lambda表达式的底层原理4.1 底层原理4.2 lambda…

qt中使用mysql 数据库

QT 版本介绍 虽然版本是这个&#xff0c;但是工作目录确是&#xff1a; 下面陈述安装步骤 第一步&#xff1a; 就是安装MYSQL 数据库&#xff0c;在此不再赘述了&#xff0c;很多博主已经上传了。 第二步&#xff1a; 就是拷贝QT 对应mysql 的版本驱动到 QT 的编译器文件中…

Kubernetes operator(七) controller-runtime 篇

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Kubernetes operator学习 系列第七篇&#xff0c;本节会对 编写Operator非常重要 的 controller-runtime 库进行学习基于 kubernetes v1.24.0 代码分析Kubernetes operator学习系列 快捷链接 Kubernetes operat…

【gulp+jq+html】添加环境变量,并在js中使用(判断环境,更改api接口域名)+ 附gulpfile.js代码

参考博文&#xff1a; gulp分离环境 gulp中如何配置环境变量 gulp环境变量配置 1、安装cross-env插件 npm install cross-env -d2、package.json更改scripts "scripts": {"clean": "gulp clean","serve:test": "cross-env NODE…

IDEA JDBC配置

一、在pom中添加依赖 <dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency></dependencies> 然后同步一下 二、编写代码…

03哈希表:349、 两个数组的交集

349、 两个数组的交集 文章目录 349、 两个数组的交集方法一&#xff1a;哈希表 重点&#xff1a;题目规定了长度为1000&#xff0c;可以用数组&#xff1b;去重需要用set 哈希法&#xff1a; 从第一个里面取出来&#xff0c;放入数组&#xff0c;用第二个去查数组 方法一&…

C++项目-- 高并发内存池(一)

C项目-- 高并发内存池&#xff08;一&#xff09; 文章目录 C项目-- 高并发内存池&#xff08;一&#xff09;一、项目介绍1.项目来源2.内存池介绍1.池化技术2.内存池3.内存池主要解决的问题4.malloc 二、定长内存池1.定长内存池的设计2.代码实现3.性能测试4.直接在堆上申请空间…

【考研408】算法与数据结构笔记

文章目录 绪论数据结构的基本概念算法和算法评价 线性表线性表的定义和基本操作线性表的顺序表示线性表的链式表示 栈和队列栈基本操作栈的顺序存储结构栈的链式存储 队列队列常见的基本操作队列的顺序存储结构队列的链式存储结构双端队列 栈和队列的应用栈在括号匹配中的应用栈…

【内置对象·js】

数学对象 document.write("圆周率为 " Math.PI "<br>");日期对象 var date new Date(); // 实例化 Date 对象var month date.getMonth() 1; // 获取月份&#xff0c;取值为 0&#xff08;一月&#xff09;到 11&#xff08;十二月&#xff09;之…