算法:深度优先遍历
文章目录
- 什么是深搜
- 典型题目积累
本篇主要积累的是深度优先遍历算法
什么是深搜
深度优先搜索英文缩写为 DFS 即Depth First Search
其过程是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次
简单来说就是: 一路走到头,不撞墙不回头
典型题目积累
电话号码和字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

这里可以把它想象成是一个多叉树,每次都是多叉树的前序遍历,深度优先进行遍历,当遍历到根部的时候再转换另外一个根进行遍历,假设以258为例:

思路:从输出结果看,输出的是vector<string>,因此第一步要首先把每一个内容组装起来,比如要先组装成ajt,aju等,再把这些字符串尾插到vector中,因此思路就很明显了
class Solution
{const char* numarray[10]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
public:void Combine(string& digits,int i,string CombineStr,vector<string>& v){if(i==digits.size()){v.push_back(CombineStr);return;}int num=digits[i]-'0';string str=numarray[num];for(auto ch : str){Combine(digits,i+1,CombineStr+ch,v);}}vector<string> letterCombinations(string digits) {vector<string> v;if(digits.size()==0){return v;}string str;Combine(digits,0,str,v);return v;}
};
递归展开图如下所示:

相关文章:
算法:深度优先遍历
文章目录 什么是深搜典型题目积累 本篇主要积累的是深度优先遍历算法 什么是深搜 深度优先搜索英文缩写为 DFS 即Depth First Search 其过程是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次 简单来说就是: 一路走到头,不撞墙…...
Stable Diffusion + Deform制作指南
1.安装sd以及deform插件,更新后记得重启 需要安装ffmpeg https://ffmpeg.org/download.html 选择对应版本然后安装 如果是windows需要解压后将ffmpeg的bin目录配置在电脑的环境变量里面。 2.准备一张初始开始图片 3.填写参数,这里面参数要注意,宽高一定是32的倍数。如果填写…...
ssm+vue网上花店设计源码和论文
ssmvue网上花店设计源码和论文017 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用…...
【leetcode】第一章数组
704. 二分查找 边界值需注意left代表左边界下标值,right代表右边界的下标值当数组只有一个元素时,此时如果找到该元素应该返回下标0,因此条件为left<right当mid的元素值大于target时,此时说明我们想找的target在右边ÿ…...
01|Java中常见错误或不清楚
补充:length vs length() vs size() 1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性. 2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法. 3.java中的siz…...
递归的用法和例子
b站视频:https://www.bilibili.com/video/BV1iS4y1e7MJ/?spm_id_from333.999.0.0&vd_source1717654b9cbbc6a773c2092070686a95 # 递归的定义:其实就是自己调用自己,一般用函数的形式来进行 """ 特点: 1、一定…...
极狐GitLab 企业级 CI/CD 规模化落地实践指南(一)
目录 template 引用,减少代码冗余,增强 CI/CD 构建扩展性 问题 1:代码冗余,低效实践 问题 2:维护性难,工作量大 ➤ local ➤ file ➤ remote ➤ template 收益 1:一处修改,多…...
springBoot 简单的demo
springBoot 学习开始 场景开发流程1、创建项目2、导入依赖3、创建启动springBoot 项目的主入口程序4、创建业务程序5、在MainApplication文件运行程序6、将文件打包成jar包 遇到的问题未解决 希望大哥们帮忙--本地运行jar包报错 场景 浏览器发送hello请求,返回“he…...
[国产MCU]-BL602开发实例-实时时钟(RTC)
RTC 文章目录 RTC1、RTC介绍2、RTC使用实例RTC(real-time clock)为操作系统中的实时时钟设备,为操作系统提供精准的实时时间和定时报警功能。当设备下电后,通过外置电池供电,RTC继续记录操作系统时间;设备上电后,RTC提供实时时钟给操作系统,确保断电后系统时间的连续性。…...
大数据Flink(六十三):SqlClient工具的使用
文章目录 SqlClient工具的使用 一、入门...
哈威比例多路阀控制放大器
多路比例阀放大器控制负载敏感原理的比例多路换向阀,它用于与负载无关的、无级调节液压执行元件的运动速度。 多个执行元件可以同时和相互无关地进行工作。 这种类型的阀主要用于行走液压机械(例如:起重控制系统)。 通过选择执行元…...
Java bean 是个什么概念?
Java bean可以把它比作一个"智能的容器",它具备封装数据的能力。 Java bean是一种可重用的软件组件,它主要用于在Java应用程序中存储和传递数据。它是一种符合特定规范的Java类,通过封装数据和提供访问方法,使数据的管…...
微服务系列文章之 Springboot+Vue实现登录注册
一、springBoot 创建springBoot项目 分为三个包,分别为controller,service, dao以及resource目录下的xml文件。 UserController.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 …...
【Docker】如何在设计 dockerfile 过程中,设置容器启动后的定时任务
如何在设计 dockerfile 过程中,设置容器启动后的定时任务 jwensh 2023.08.14 文章目录 如何在设计 dockerfile 过程中,设置容器启动后的定时任务1. 基于 alpine 设计 dockerfile 过程中,设置容器启动后的定时任务2. 基于 CentOS 设计 Dockerf…...
【leetcode】第三章 哈希表part01
242.有效的字母异位词 使用HashMap public boolean isAnagram(String s, String t) {HashMap<Character,Integer> map new HashMap();int sLen s.length();int tLen t.length();if (sLen ! tLen) return false;// 统计词频for (int i 0; i < s.length(); i) {ch…...
Docker中Tomcat部署步骤
第一次访问没有东西。...
pycharm 安装库
这是另一种方式。 搜索到的安装库的方式多数是:在桌面上winR键运行终端,输入命令,安装不了,发现安装不了。 1、打开pycharm; 2、软件下部的Terminal终端(需要运行一个代码才能出现,任何代码都可)…...
使用 Ploomber、Arima、Python 和 Slurm 进行时间序列预测
推荐:使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 简短的笔记本说明 笔记本由 8 个任务组成,如下图所示。它包括建模的大多数基本步骤 - 获取数据清理、拟合、超参数调优、验证和可视化。作为捷径,我拿起笔记本并使用Soorgeon工具…...
springboot第35集:微服务与flutter安卓App开发
Google Playplay.google.com/apps/publis…[1]应用宝open.qq.com/[2]百度手机助手app.baidu.com/[3]360 手机助手dev.360.cn/[4]vivo 应用商店dev.vivo.com.cn/[5]OPPO 软件商店(一加)open.oppomobile.com/[6]小米应用商店dev.mi.com/[7]华为应用市场dev…...
java 把list转成json
在Java中,将List转换成JSON格式是非常常见的任务。JSON是一种轻巧的数据交换格式,非常适合于Web应用程序,特别是前端开发。 使用Java将List转换成JSON格式的最简单方法是通过JSON库。最常用的JSON库是 Jackson,它提供了快速&…...
VTube Studio插件开发终极教程:构建你的第一个互动工具
VTube Studio插件开发终极教程:构建你的第一个互动工具 【免费下载链接】VTubeStudio VTube Studio API Development Page 项目地址: https://gitcode.com/gh_mirrors/vt/VTubeStudio VTube Studio是一款功能强大的虚拟主播软件,提供了丰富的API接…...
LVGL事件处理实战:从按钮点击到复杂手势,手把手教你写响应式UI回调
LVGL事件处理实战:从按钮点击到复杂手势,手把手教你写响应式UI回调 在嵌入式系统开发中,用户界面的交互体验往往决定了产品的成败。LVGL作为轻量级通用图形库,其事件处理机制是构建动态交互的核心。不同于简单的回调函数绑定&…...
告别内存泄漏!Cocos Creator 2.4+ AssetManager资源释放的完整避坑指南
Cocos Creator 2.4 AssetManager资源释放的完整避坑指南在游戏开发中,资源管理一直是影响性能和稳定性的关键因素。随着Cocos Creator 2.4版本推出全新的AssetManager系统,开发者获得了更强大的资源管理能力,但也面临着新的挑战。本文将深入探…...
大语言模型在嵌入式系统开发中的应用与挑战
1. 嵌入式系统开发与大语言模型的碰撞 在智能家居、工业自动化和物联网设备蓬勃发展的今天,嵌入式系统作为连接数字世界与物理世界的桥梁,其开发复杂度正呈指数级增长。传统嵌入式开发要求工程师同时具备三大核心能力:理解电子元件特性与电路…...
git--github
解决github无法访问的问题。...
量子集成方法破解医疗AI小样本困境
1. 量子集成方法在医疗与生命科学中的突破价值在医疗健康与生命科学(HCLS)领域,数据稀缺性一直是制约AI技术落地的核心瓶颈。以癌症免疫治疗为例,获取足够数量的患者样本往往需要数年时间,而每个样本可能包含数万个基因…...
Pico手柄+XRI 2.5交互系统实战:射线点击与抓取避坑指南
1. 这不是“拖拽组件就能跑通”的Demo,而是真正在Pico设备上能稳定抓取杯子、推开箱子、精准点击UI的交互系统Unity XR Interaction Toolkit(简称XRI)这两年在XR开发圈里热度很高,但很多人一上手就卡在“手柄动了,但啥…...
不变量理论:从数学原理到机器学习中的对称性特征工程
1. 项目概述:从“区分”到“表达”的核心思想在数据科学和机器学习的世界里,我们常常面对一个根本性的挑战:如何从一堆看似杂乱无章、经过各种变换(如旋转、平移、对称操作)的数据中,提取出真正有意义的、稳…...
一文讲清楚规则、Skill、MCP
想象一下,你要开一家餐厅,并招聘了一位AI员工。这三样东西,就是你管理这位新员工的完整装备。1. 规则 —— 餐厅的“企业文化手册”• 这是什么:这是你给AI员工的第一份文件,一本总纲领、总章程。它不教具体怎么做菜&a…...
2026最新免费图片去水印保姆级教程!这5种方法一次学会,第三种零门槛秒出图
你是不是也遇到过这种情况?好不容易在小红书、抖音上刷到一张绝美壁纸,保存下来却被水印破坏了整体美感;想把博主分享的干货截图保存,结果那个半透明的Logo刚好挡在关键数据上。别急,今天这篇教程就是为你准备的。 202…...
