leetcode-top100回溯算法

组合总和

题目链接

39. 组合总和 - 力扣(LeetCode)

解题代码

class Solution:def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:def dfs(candidates,begin,size,path,res,target):if target < 0:returnif target == 0:res.append(path)returnfor index in range(begin,size):dfs(candidates,index,size,path + [candidates[index]],res,target - candidates[index])size = len(candidates)if size == 0:return []path = []res = []dfs(candidates,0,size,path,res,target)return res

括号生成

题目链接

22. 括号生成 - 力扣(LeetCode)

解题代码

class Solution:def generateParenthesis(self, n: int) -> List[str]:if n == 0 :return []def generate(A):if len(A) == 2*n:if valid(A):ans.append("".join(A))else:A.append("(")generate(A)A.pop()A.append(")")generate(A)A.pop()def valid(A):bal = 0for c in A:if c == '(': bal += 1else: bal -= 1if bal < 0: return Falsereturn bal == 0ans = []generate([])return ans

单词搜索

题目链接

79. 单词搜索 - 力扣(LeetCode)

解题代码

class Solution:def exist(self, board: List[List[str]], word: str) -> bool:directions = [(1,0),(-1,0),(0,1),(0,-1)]def check(i: int, j:int, k:int) ->bool:if board[i][j] != word[k]:return Falseif k == len(word) - 1:return Truevisited.add((i,j))result = Falsefor di,dj in directions:newi, newj = i + di,j + djif 0 <= newi < len(board) and 0 <= newj < len(board[0]):if (newi,newj) not in visited:if check(newi,newj,k + 1):result = Truebreakvisited.remove((i,j))return resulth,w = len(board),len(board[0])visited = set()for i in range(h):for j in range(w):if check(i,j,0):return Truereturn False

分割回文串

题目链接

131. 分割回文串 - 力扣(LeetCode)

解题代码

class Solution:def partition(self, s: str) -> List[List[str]]:n = len(s)f = [[True] * n for _ in range(n)]for i in range(n - 1, -1, -1):for j in range(i + 1, n):f[i][j] = (s[i] == s[j]) and f[i+1][j-1]ret = list()ans = list()def dfs(i:int):if i == n:ret.append(ans[:])returnfor j in range(i,n):if f[i][j]:ans.append(s[i:j + 1])dfs(j + 1)ans.pop()dfs(0)return ret

N皇后

题目链接

51. N 皇后 - 力扣(LeetCode)

解题代码

class Solution:def solveNQueens(self, n: int) -> List[List[str]]:def generateBoard():board = list()for i in range(n):row[queens[i]] = "Q"board.append("".join(row))row[queens[i]] = "."return boarddef backtrack(row: int):if row == n:board = generateBoard()solutions.append(board)else:for i in range(n):if i in columns or row - i in diagonal1 or row + i in diagonal2:continuequeens[row] = icolumns.add(i)diagonal1.add(row - i)diagonal2.add(row + i)backtrack(row + 1)columns.remove(i)diagonal1.remove(row - i)diagonal2.remove(row + i)solutions = list()queens = [-1] * ncolumns = set()diagonal1 = set()diagonal2 = set()row = ["."] * nbacktrack(0)return solutions

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

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

相关文章

【大模型 数据增强】无监督关系抽取任务的新方法

【大模型 数据增强】无监督关系抽取任务的新方法 提出背景解法&#xff1a;多样性正样本对增强&#xff08;AugURE&#xff09;特征1&#xff1a;句内正样本对增强特征2&#xff1a;跨句正样本对提取特征3&#xff1a;使用边界敏感损失函数 医学场景&#xff1a;自动抽取药物-疾…

软件实例分享,家具生产出库管理系统软件教程

软件实例分享&#xff0c;家具生产出库管理系统软件教程 一、前言 以下软件程序教程以 佳易王家具行业生产出库管理系统软件V16.1为例说明 软件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 销售管理——产品状态查询变更&#xff0c;可以根据生产进度变更…

作为项目经理,PMP值得考嘛?最近PMP变数特别大,你还看好PMP嘛?

做项目管理的话&#xff0c;自然是值得考的&#xff0c;现在PMP几乎是项目管理的必考证书了&#xff0c;找工作需要PMP优先&#xff0c;做项目也要求PMP&#xff0c;做项目相关工作的建议去看一个 一、先给大家分析一下PMP 证书的使用场景 1、项目管理岗位招聘的门槛 PMP 是项…

房产证翻译,证件类翻译公司推荐

随着全球化的发展&#xff0c;证件类翻译在我们的生活中越来越常见。其中&#xff0c;房产证翻译是尤为重要的一种。它不仅关乎到个人的财产权益&#xff0c;更在留学、移民、财产公证以及办理贷款等关键场合起到举足轻重的作用。那么&#xff0c;如何做好房产证证件类翻译&…

【stm32】DAC输出三角波锯齿波

【stm32】DAC输出三角波锯齿波及任意波形 导入DAC.ioc&#xff08;见上节DAC学习笔记&#xff09; DAC输出三角波 CubeMX图形化配置 DAC配置 实现0.1ms定时周期 时钟树配置 程序编写 /* USER CODE BEGIN Includes */ #include "lcd.h" /* USER CODE END Inc…

《Go 简易速速上手小册》第3章:数据结构(2024 最新版)

文章目录 3.1 数组与切片&#xff1a;Go 语言的动态队伍3.1.1 基础知识讲解3.1.2 重点案例&#xff1a;动态成绩单功能描述实现代码扩展功能 3.1.3 拓展案例 1&#xff1a;数据分析功能描述实现代码扩展功能 3.1.4 拓展案例 2&#xff1a;日志过滤器功能描述实现代码扩展功能 3…

DBProxy sh bootstrap.sh失败

记录DBProxy安装问题 configure: error: mysql_config is not found, use $ ./configure --with-mysql/path/to/mysql_config 修改configure文件 增加MYSQL_CONFIG/usr/local/mysql&#xff0c;指定mysql安装目录

论文阅读_语音识别_Wisper

英文名称: Robust Speech Recognition via Large-Scale Weak Supervision 中文名称: 通过大规模弱监督实现鲁棒语音识别 链接: https://proceedings.mlr.press/v202/radford23a.html 代码: https://github.com/openai/whisper 作者: Alec Radford, Jong Wook Kim, Tao Xu, Greg…

gifshot-plus配置参数说明

gifshot-plus将视频或者多张图片生成gif图 安装&#xff1a;npm i gifshot-plus 引入&#xff1a;import gifshot from gifshot-plus 使用&#xff1a; gifshot.createGIF(options,(obj) > {if (!obj.error) {console.log("gif image url: ", obj.image);} el…

vue2+高德地图web端开发(二)

前言&#xff1a; 高德地图输入提示与 POI 搜索相关文档&#xff1a;输入提示与 POI 搜索-服务插件和工具-进阶教程-地图 JS API 2.0 | 高德地图API (amap.com) 输入提示-输入提示-示例中心-JS API 2.0 示例 | 高德地图API (amap.com) 创建输入框&#xff1a; 引入Element组…

2402C++,偷窥C++未来的反射

原文 在此体验. 只需要包含#include <experimental/meta>. #include <experimental/meta> int main() {constexpr auto r ^int;typename[:r:] x 42;// : int x 42;typename[:^char:] c *;// : char c *; }选择成员 这是一个操作成员的小示例: struct S { …

渲染案例 |《甲辰春来,福暖四季》蓝海创意云助力央视新闻频道打造2024龙年除夕视觉盛宴

随着2024年甲辰龙年的脚步渐近&#xff0c;中央广播电视总台新闻频道精心策划的除夕特别节目《甲辰春来&#xff0c;福暖四季》于2月9日上午9点准时与全国观众见面。这一场充满传统韵味与现代气息的视觉盛宴&#xff0c;不仅展现了浓厚的节日氛围&#xff0c;更在技术上实现了突…

Halcon 元组/数组基本操作

Halcon 元组/数组基本操作 ** 元组/数组 tuple *******数组创建与字典******* ** 创建一个数组 A : [1,3,45,6] A[0] : 1 A[1] : 2** 定义一个key value字典类型create_dict (DictHandle) set_dict_tuple (DictHandle, test_tuple, A) set_dict_tuple (DictHandle, test_obj, …

Could not load request class : org.hibernate.dialect.MariaDB102Dialect

最近给项目做了点小改动&#xff1a;升级到了Spring Boot 3.1.5&#xff0c;然后它就出现了这个报错&#xff1a;Could not load request class : org.hibernate.dialect.MariaDB102Dialect。 解决办法&#xff1a;将JPA dialect改成org.hibernate.dialect.MariaDBDialect。

[HTML]Web前端开发技术26(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;佬佬会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…

基于STM32技术的智慧农业系统

基于STM32技术的智慧农业系统研究 摘要: 随着物联网技术的飞速发展,智慧农业逐渐成为实现农业现代化的重要手段。本文介绍了一种基于STM32技术的智慧农业系统,详细阐述了系统的硬件设计、软件编程和功能实现,并通过实验验证了系统的可行性和有效性。 关键词:STM32;智慧…

Java数字孪生智慧工地数据大屏APP项目源码

目录 智慧工地云平台核心功能 1.劳务管理 2.视频监控 3.安全教育 4.进度管理 5.环境监测 6.塔吊监控 7.升降机监控 8.工地广播 9.深基坑高支模 10.AI识别 11.安全质量 智慧工地建设的价值和意义 危大工程管理 智慧工地聚焦施工现场一线生产活动&#xff0c;利用物…

sql的order by 按照自定义的顺序排列

SQL 的 ORDER BY 子句可以按照自定义的顺序进行排列。 可以使用 CASE 表达式来指定自定义的排序顺序。以下是一个示例&#xff1a; 假设我们有一个表格 students 包含字段 name 和 grade&#xff0c;我们想按照自定义的顺序对 name 字段进行排序&#xff0c;可以这样写&#…

数字孪生10个技术栈(总括):概念扫盲和总体介绍

数字孪生涉及到诸多技术领域&#xff0c;千汇数据工场将分为10个技术领域来介绍数字孪生&#xff0c;力争将复杂的技术术语给出最浅显易懂的解释&#xff0c;不会上复杂的的代码&#xff0c;大家可以畅快阅读。 本片先从总体上介绍数字孪生技术栈。 一、什么是数字孪生 数字孪…

【github】利用Git将自己的代码上传至GitHub

记录一下将自己的代码上传GitHub的步骤。    Git工具下载&#xff1a;https://git-for-windows.github.io/ 1、在github上建立项目 首先在github主页上&#xff0c;创建一个reopsitory&#xff0c;并命名为PHF-Test&#xff0c;可添加项目描述&#xff08;Description&#x…