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

回溯52-59

52. 全排列给定一个不含重复数字的数组nums返回其所有可能的全排列。你可以按任意顺序返回答案。class Solution(object): def fun(self,nums,path): if len(path)len(nums): self.res.append(path[:]) for i in range(len(nums)): if self.visit[i]0: self.visit[i]1 path.append(nums[i]) self.fun(nums,path) path.pop() self.visit[i]0 def permute(self, nums): self.res[] self.visit[0]*len(nums) self.fun(nums,[]) return self.res53. 子集给你一个整数数组nums数组中的元素互不相同。返回该数组所有可能的子集幂集。解集不能包含重复的子集。你可以按任意顺序返回解集。class Solution(object): def fun(self,nums,path,x): self.res.append(path[:]) for i in range(x,len(nums)): path.append(nums[i]) self.fun(nums,path,i1) path.pop() def subsets(self, nums): self.res[] self.fun(nums,[],0) return self.res54. 电话号码的字母组合给定一个仅包含数字2-9的字符串返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下与电话按键相同。注意 1 不对应任何字母。class Solution(object): def letterCombinations(self, digits): mp{ 2:[a,b,c], 3:[d,e,f], 4:[g,h,i], 5:[j,k,l], 6:[m,n,o], 7:[p,q,r,s], 8:[t,u,v], 9:[w,x,y,z] } res[] for _ in digits: if not res: resmp[_] else: ans[] for c in mp[_]: for s in res: ans.append(.join(sc)) resans return res55. 组合总和给你一个无重复元素的整数数组candidates和一个目标整数target找出candidates中可以使数字和为目标数target的 所有不同组合并以列表形式返回。你可以按任意顺序返回这些组合。candidates中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同则两种组合是不同的。对于给定的输入保证和为target的不同组合数少于150个。class Solution(object): def fun(self,candidates,target,x,path): if target0 and xlen(candidates): self.res.append(path[:]) for i in range(x,len(candidates)): if target-candidates[i]0: path.append(candidates[i]) self.fun(candidates,target-candidates[i],i,path) path.pop() def combinationSum(self, candidates, target): candidatessorted(candidates) self.res[] self.fun(candidates,target,0,[]) return self.res56. 括号生成数字n代表生成括号的对数请你设计一个函数用于能够生成所有可能的并且有效的括号组合。class Solution(object): def sun(self,left,right,path): if left0 and right0: self.res.add(.join(path[:])) if left0: path.append(() self.sun(left-1,right1,path) path.pop() if right0: path.append()) self.sun(left,right-1,path) path.pop() def generateParenthesis(self, n): self.resset() self.sun(n,0,[]) return list(self.res)57. 单词搜索给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中返回true否则返回false。单词必须按照字母顺序通过相邻的单元格内的字母构成其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。class Solution(object): def DFS(self,board,word,i,j,m,n,k): if i0 and im and j0 and jn and self.visit[i][j]0: if board[i][j]word[k]: self.visit[i][j]1 if klen(word)-1: return True for x,y in self.dir: x,yxi,yj if self.DFS(board,word,x,y,m,n,k1): return True self.visit[i][j]0 def exist(self, board, word): self.dir[[0,1],[0,-1],[1,0],[-1,0]] m,nlen(board),len(board[0]) self.visit[[0]*n for i in range(m)] for i in range(m): for j in range(n): if board[i][j]word[0]: if self.DFS(board,word,i,j,m,n,0): return True return False58. 分割回文串给你一个字符串s请你将s分割成一些 子串使每个子串都是回文串。返回s所有可能的分割方案。class Solution(object): def is_palindrome(self, sub): if subsub[::-1]: return True return False def backtrack(self, s, start, path): if startlen(s): self.res.append(path[:]) for end in range(start,len(s)): if self.is_palindrome(s[start:end1]): path.append(s[start:end1]) self.backtrack(s,end1,path) path.pop() def partition(self, s): self.res[] self.backtrack(s,0,[]) return self.res59. N 皇后按照国际象棋的规则皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题研究的是如何将n个皇后放置在n×n的棋盘上并且使皇后彼此之间不能相互攻击。给你一个整数n返回所有不同的n皇后问题的解决方案。每一种解法包含一个不同的n 皇后问题的棋子放置方案该方案中Q和.分别代表了皇后和空位。class Solution(object): def judge(self,i,j,n): x, y i - 1, j - 1 while x 0 and y 0: if self.visit[x][y] Q: return False x - 1 y - 1 x, y i - 1, j 1 while x 0 and y n: if self.visit[x][y] Q: return False x - 1 y 1 return True def fun(self,n,row): if rown: self.res.append([.join(_[:]) for _ in self.visit]) return for col in range(n): if self.col[col] 0: if self.judge(row,col,n): self.visit[row][col]Q self.col[col]1 self.fun(n,row1) self.visit[row][col]. self.col[col]0 def solveNQueens(self, n): self.dir[[0,1],[1,0],[0,-1],[-1,0],[1,1],[1,-1],[-1,1],[-1,-1]] self.visit[[.]*n for _ in range(n)] self.col[0]*n self.res[] self.fun(n,0) return self.res

相关文章:

回溯52-59

52. 全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 class Solution(object):def fun(self,nums,path):if len(path)len(nums):self.res.append(path[:])for i in range(len(nums)):if self.visit[i]0:self.vi…...

efinance:Python量化交易的免费金融数据终极解决方案

efinance:Python量化交易的免费金融数据终极解决方案 【免费下载链接】efinance efinance 是一个可以快速获取基金、股票、债券、期货数据的 Python 库,回测以及量化交易的好帮手!🚀🚀🚀 项目地址: https…...

OBS高级计时器:7种计时模式让直播时间管理更简单

OBS高级计时器:7种计时模式让直播时间管理更简单 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer 在直播和视频制作中,时间管理是提升专业度的关键环节。obs-advanced-timer作为一款专为O…...

UAVLogViewer:无人机飞行日志分析的终极免费解决方案

UAVLogViewer:无人机飞行日志分析的终极免费解决方案 【免费下载链接】UAVLogViewer An online viewer for UAV log files 项目地址: https://gitcode.com/gh_mirrors/ua/UAVLogViewer 面对无人机飞行日志中混乱的数据格式、复杂的参数解读和难以直观展示的三…...

Linux内核镜像构建与管理:从源码到部署的工程化实践

1. 项目概述:从“kernel-images”看内核镜像的构建与管理在Linux系统开发、嵌入式设备定制或者云原生基础设施的维护中,我们经常会遇到一个看似简单却至关重要的环节:内核镜像的构建与管理。无论是为了修复一个安全漏洞、启用一个新的硬件驱动…...

3分钟搞定AI短视频:零门槛创作神器完全指南

3分钟搞定AI短视频:零门槛创作神器完全指南 【免费下载链接】MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频 Generate short videos with one click using AI LLM. 项目地址: https://gitcode.com/GitHub_Trending/mo/MoneyPrinterTurbo 还…...

R语言clusterProfiler包KEGG富集分析报错?别慌,这份2024最新避坑指南帮你搞定

R语言clusterProfiler包KEGG富集分析2024避坑实战指南 当你在深夜的实验室里盯着RStudio不断弹出的红色报错信息,第十次尝试调整enrichKEGG参数却依然看到"replacement has length zero"这个令人绝望的提示时,可能已经忍不住要摔键盘了。这份…...

从点灯到项目:手把手教你为TMS320F28335创建可复用的工程模板

从点灯到项目:手把手教你为TMS320F28335创建可复用的工程模板 当你第一次点亮TMS320F28335开发板上的LED时,那种成就感无与伦比。但很快你会发现,随着项目复杂度提升,代码开始变得混乱不堪——头文件散落各处、函数命名随意、每次…...

别再手动找数据了!用SPSS的‘添加变量’功能,5分钟搞定跨表数据匹配

SPSS数据合并实战:用‘添加变量’功能高效匹配跨表数据 在数据分析的日常工作中,我们常常遇到这样的场景:市场部门提供了一份客户基本信息表,销售团队则提交了季度消费记录,两份数据都包含客户ID字段但其他信息分散在不…...

ZipCPU/dspfilters:轻量级C++ IIR滤波器库的设计原理与嵌入式应用

1. 项目概述:从零开始理解一个数字信号处理滤波器库最近在整理一些嵌入式音频处理的项目,又翻出了ZipCPU/dspfilters这个仓库。这其实是一个在GitHub上存在了相当一段时间的C数字信号处理(DSP)滤波器库,由ZipCPU&#…...

AI技能白日梦:让大模型通过自主推演实现能力进化

1. 项目概述:当AI学会“白日做梦”最近在GitHub上看到一个挺有意思的项目,叫regiep4/skill-daydreaming。光看这个名字,就让人浮想联翩——“技能白日梦”?这听起来不像是一个传统的工具库或者框架,更像是一种对AI能力…...

OpenART mini变身智能小车“眼睛”:基于颜色识别的自动追踪实战(附完整Python代码)

OpenART mini变身智能小车“眼睛”:基于颜色识别的自动追踪实战 在智能机器人领域,视觉感知一直是赋予机器"智慧"的关键技术。而OpenART mini作为一款轻量级视觉模块,正逐渐成为创客和嵌入式开发者的首选工具。本文将带您深入探索如…...

告别手动PPT制作:用JavaScript实现自动化演示文稿生成

告别手动PPT制作:用JavaScript实现自动化演示文稿生成 【免费下载链接】PptxGenJS Build PowerPoint presentations with JavaScript. Works with Node, React, web browsers, and more. 项目地址: https://gitcode.com/gh_mirrors/pp/PptxGenJS 还在为每周重…...

LunaTranslator:打破语言壁垒,让视觉小说触手可及

LunaTranslator:打破语言壁垒,让视觉小说触手可及 【免费下载链接】LunaTranslator 视觉小说翻译器 / Visual Novel Translator 项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator 还在为日文、英文的视觉小说而烦恼吗&#xff1…...

AI应用网关ai-proxy:统一管理多模型API调用,实现路由、缓存与限流

1. 项目概述:一个为AI应用量身打造的智能代理网关如果你正在开发或部署基于大语言模型(LLM)的应用,比如一个聊天机器人、一个代码助手,或者一个内容生成工具,那么你大概率会遇到一个头疼的问题:…...

构建企业级安全运维体系:从SSH堡垒机到自动化管控平台

1. 项目概述:从“GMSSH/GMClaw”看现代远程访问与管理的演进最近在和一些做基础设施和运维的朋友交流时,他们频繁提到一个组合词:“GMSSH/GMClaw”。乍一听,这像是一个内部代号或者某个新工具的名字。深入聊下去才发现&#xff0c…...

【Unity进阶实战】将PC端EXE打包与压缩一体化:从项目设置到单文件发布

1. Unity项目打包前的关键设置 第一次用Unity打包PC端应用时,我踩过不少坑。记得有个项目打包后死活运行不起来,折腾半天才发现是场景没正确添加。所以打包前的准备工作特别重要,咱们一步步来。 打开Build Settings窗口(File >…...

五分钟完成python脚本对接taotoken多模型api的教程

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 五分钟完成Python脚本对接Taotoken多模型API的教程 对于希望快速接入多个主流大模型的Python开发者而言,Taotoken提供的…...

StreamCap:如何一站式解决40+直播平台录制难题?

StreamCap:如何一站式解决40直播平台录制难题? 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/Strea…...

Prisma AI插件OpenClaw:用自然语言智能查询数据库

1. 项目概述:一个为Prisma生态注入AI能力的开源插件如果你正在使用Prisma作为你的Node.js或TypeScript项目的ORM(对象关系映射)工具,并且对如何将生成式AI的能力无缝集成到数据库操作中感到好奇,那么你很可能已经听说过…...

MuseTalk 唇语同步配置指南:解决3大常见问题,从入门到精通

MuseTalk 唇语同步配置指南:解决3大常见问题,从入门到精通 【免费下载链接】MuseTalk MuseTalk: Real-Time High Quality Lip Synchorization with Latent Space Inpainting 项目地址: https://gitcode.com/gh_mirrors/mu/MuseTalk MuseTalk 是一…...

Unified Access Control:从NAS到RRC的5G接入控制全流程解析

1. 5G统一接入控制(UAC)的核心逻辑 想象一下你走进一家高级会员制餐厅,服务员会先检查你的会员卡(身份验证),再确认你的预约类型(业务类别),最后根据当天客流情况&#x…...

离开Meta后田渊栋官宣创业,估值达46.5亿美元;17个小时谈判破裂,三星电子5万名员工或将罢工;微软纳德拉官宣MDASH框架 | 极客头条

「极客头条」—— 技术人员的新闻圈!CSDN 的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。(投稿或寻求报道:zhanghycsdn.net)整理 | 郑丽媛出品 | CSDN(I…...

2026届学术党必备的六大AI科研神器解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于当下的学术语境里面,AI辅助论文写作已经变成了越来越多研究者采用的效率工具。…...

基于OpenClaw构建AI智能体:从RAG到自动化工作流的实战指南

1. 项目概述:一个开源AI应用案例的“藏宝图”最近在GitHub上闲逛,发现了一个挺有意思的仓库,叫awesome-openclaw-usecases-zh。光看名字,就能拆解出几个关键信息:“awesome”系列(意味着是精选合集&#xf…...

LuckyLilliaBot终极指南:一站式构建跨协议QQ机器人的完整解决方案

LuckyLilliaBot终极指南:一站式构建跨协议QQ机器人的完整解决方案 【免费下载链接】LuckyLilliaBot 支持 OneBot 11、Satori 和 Milky 协议 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot 还在为QQ机器人开发中协议不兼容、功能单一而烦恼吗&…...

基于语义检索的LLM工具发现框架:从原理到工程实践

1. 项目概述与核心价值最近在折腾AI应用开发,特别是想把手头的几个大语言模型(LLM)能力整合到自己的工具链里,发现一个挺头疼的问题:模型本身很强大,但让它去精准调用外部工具(比如查数据库、发…...

不止于测温:用MAX31855和K型热电偶搭建一个低成本高精度温度监控系统(附STM32源码)

从热电偶到云端:基于MAX31855的高精度温度监测系统全栈开发指南 在工业自动化、实验室监测甚至家庭酿造等场景中,温度数据的精确采集与实时监控往往成为项目成败的关键。传统温度传感器虽然简单易用,但在高温、腐蚀性环境或需要极高精度的场合…...

Vigil与其他监控工具集成:构建全方位监控体系的3种方案

Vigil与其他监控工具集成:构建全方位监控体系的3种方案 【免费下载链接】vigil 🚦 Microservices Status Page. Monitors a distributed infrastructure and sends alerts (Slack, SMS, etc.). 项目地址: https://gitcode.com/gh_mirrors/vig/vigil …...

NLP知识图谱构建实战:从文本到结构化知识的完整流程

1. 项目概述:当NLP遇上知识图谱如果你在NLP(自然语言处理)领域摸爬滚打了一段时间,或者对知识图谱(Knowledge Graph)这个听起来就很有“智慧感”的东西感兴趣,那么你大概率在GitHub上见过或搜索…...