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

力扣hot100_回溯(2)_python版本

一、39. 组合总和(中等)

在这里插入图片描述

  • 代码:
class Solution:def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]:ans = []path = []def dfs(i: int, left: int) -> None:if left == 0:# 找到一个合法组合ans.append(path.copy())returnif i == len(candidates) or left < 0:return# 不选dfs(i + 1, left)# 选path.append(candidates[i])dfs(i, left - candidates[i])path.pop()  # 恢复现场dfs(0, target)return ans

二、22. 括号生成

在这里插入图片描述

  • 代码
class Solution:def generateParenthesis(self, n: int) -> List[str]:m = n * 2  # 括号长度ans = []path = [''] * m  # 所有括号长度都是一样的 m# i = 目前填了多少个括号# open = 左括号个数,i-open = 右括号个数def dfs(i: int, open: int) -> None:if i == m:  # 括号构造完毕ans.append(''.join(path))  # 加入答案returnif open < n:  # 可以填左括号path[i] = '('  # 直接覆盖dfs(i + 1, open + 1)  # 多了一个左括号if i - open < open:  # 可以填右括号path[i] = ')'  # 直接覆盖dfs(i + 1, open)dfs(0, 0)return ans

三、79. 单词搜索(中等)

在这里插入图片描述

  • 代码
class Solution:def exist(self, board: List[List[str]], word: str) -> bool:m, n = len(board), len(board[0])def dfs(i: int, j: int, k: int) -> bool:if board[i][j] != word[k]:  # 匹配失败return Falseif k == len(word) - 1:  # 匹配成功!return Trueboard[i][j] = ''  # 标记访问过for x, y in (i, j - 1), (i, j + 1), (i - 1, j), (i + 1, j):  # 相邻格子if 0 <= x < m and 0 <= y < n and dfs(x, y, k + 1):return True  # 搜到了!board[i][j] = word[k]  # 恢复现场return False  # 没搜到return any(dfs(i, j, 0) for i in range(m) for j in range(n))

http://www.mrgr.cn/news/97619.html

相关文章:

  • Wideband Sparse Reconstruction for Scanning Radar论文阅读
  • 【Pandas】pandas DataFrame infer_objects
  • AnimateCC基础教学:随机抽取花名册,不能重复
  • nginx如何实现负载均衡?
  • Python 快速搭建一个小型的小行星轨道预测模型 Demo
  • 数字电子技术基础(四十)——使用Digital软件和Multisim软件模拟显示译码器
  • C++隐式转换的机制、风险与消除方法
  • Model Context Protocol(MCP)介绍
  • 机器学习 Day09 线性回归
  • 0基础 | 硬件 | LM386芯片
  • MySQL基础 [六] - 内置函数+复合查询+表的内连和外连
  • 解决MPU6050 驱动发现读取不出来姿态角度数据
  • Rust 是如何层层防错的
  • ⭐算法OJ⭐数据流的中位数【最小堆】Find Median from Data Stream
  • 《Operating System Concepts》阅读笔记:p587-p596
  • GEO, TCGA 等将被禁用?!这40个公开数据库可能要小心使用了
  • 算法刷题记录——LeetCode篇(2.7) [第161~170题](持续更新)
  • Linux下的进程管理(附加详细实验案例)
  • Android学习总结之网络篇(HTTP请求流程)
  • 【蓝桥杯】动态规划:背包问题