回溯
Vaccy Zhu
自律是解决人生问题最主要的工具,也是解决人生痛苦最重要的方法!
展开
-
重新安排行程-回溯332-python
没看答案。原创 2022-06-26 14:34:11 · 169 阅读 · 0 评论 -
单词搜索-回溯79-python
没看答案,二维数组的回溯。原创 2022-06-25 16:49:29 · 215 阅读 · 0 评论 -
N皇后II-回溯52-python
没看答案,N皇后的改编版,只是用res记录所有结果的个数即可,找符合要求的结果的过程无差别。原创 2022-06-06 14:46:40 · 85 阅读 · 0 评论 -
递增子序列-回溯491-python
没看答案。class Solution: def findSubsequences(self, nums: List[int]) -> List[List[int]]: n = len(nums) track = [] res = [] def backtrack(start): nonlocal track valid = [] # 记录以某个数字开头的选择在之前有没有被做过了原创 2022-03-06 16:59:47 · 344 阅读 · 0 评论 -
解数独-回溯37-python
答案解析。class Solution: def solveSudoku(self, board: List[List[str]]) -> None: """ Do not return anything, modify board in-place instead. valid:用于当board填完后停止回溯 space:用于记录board中的空格位置 row:某数字在某行中是否出现 colu转载 2022-03-06 16:26:02 · 105 阅读 · 0 评论 -
子集II-回溯90-python
没看答案。class Solution: def subsetsWithDup(self, nums: List[int]) -> List[List[int]]: nums = sorted(nums) n = len(nums) # python的列表默认为全局变量,所以不用传入backtrack()中 res = [[]] track = [] def backtrack(start):原创 2022-03-04 11:21:07 · 242 阅读 · 0 评论 -
分割回文串-回溯131-python
class Solution: def partition(self, s: str) -> List[List[str]]: track = [] res = [] n = len(s) check = [[True]*n for _ in range(n)] # 先利用dp判断s的所有回文子串, # 使得回溯中能以O(1)时间查询字串是否为回文子串 for i原创 2022-03-03 15:21:25 · 472 阅读 · 0 评论 -
组合总和III-回溯216-python
没看答案。class Solution: def combinationSum3(self, k: int, n: int) -> List[List[int]]: res = [] track = [] trackSum = 0 def backtrack(start, track): nonlocal trackSum if len(track) == k and trac原创 2022-03-03 10:13:14 · 339 阅读 · 0 评论 -
组合总和II-回溯40-python
没看答案。class Solution: def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]: n = len(candidates) # 有重复元素一定要先排序 candidates = sorted(candidates) res = [] track = [] trackSum =原创 2022-03-02 22:32:19 · 244 阅读 · 0 评论 -
电话号码的字母组合-回溯17-python
没看答案。class Solution: def letterCombinations(self, digits: str) -> List[str]: res = [] track = [] k = len(digits) choice = [] dic = { 2: ['a','b','c'], 3: ['d','e','f'], 4:原创 2022-03-02 14:29:42 · 175 阅读 · 0 评论 -
组合-回溯77-python
没看答案,套用回溯模板再做剪枝以避免超时。class Solution: def combine(self, n: int, k: int) -> List[List[int]]: res = [] track = [] def backtrack(start, track): if len(track) == k: # 直接append(track)是浅拷贝,track.pop()后会原创 2022-03-01 17:27:27 · 236 阅读 · 0 评论 -
全排列II-回溯47-python
pythonfrom copy import deepcopyclass Solution: def permuteUnique(self, nums: List[int]): n = len(nums) track = [] visited = [] res = [] def backtrack(nums, track): if len(track) == n and track not原创 2021-08-23 15:59:59 · 88 阅读 · 0 评论 -
子集-回溯78-python
pythonfrom copy import deepcopyclass Solution: def subsets(self, nums: List[int]): n = len(nums) track = [] res = [] def backtrack(nums, start, track): tmp = deepcopy(track) res.append(tmp)原创 2021-08-20 18:25:36 · 87 阅读 · 0 评论 -
括号生成-回溯22-python
pythonclass Solution: def generateParenthesis(self, n: int): track = [] res = [] def backtrack(left, right, track): if right < left: return if left < 0 or right < 0:原创 2021-08-18 19:36:01 · 120 阅读 · 0 评论 -
组合总和-回溯39-python
pythonfrom copy import deepcopyfrom collections import Counterclass Solution: def combinationSum(self, candidates: List[int], target: int): n = len(candidates) track = [] visited = [] res = [] def backtrack(原创 2021-08-16 17:54:24 · 125 阅读 · 0 评论 -
复原IP地址-回溯93-python
pythonclass Solution: def restoreIpAddresses(self, s: str): n = len(s) track = [] res = [] index, count = 0, 0 def backtrack(s, index, track, count): if count == 4 and index == n: st原创 2021-08-15 16:49:04 · 101 阅读 · 0 评论 -
N皇后-回溯51-python
回溯没看答案,labuladong永远嘀神!!pythonclass Solution: def solveNQueens(self, n: int): track = [] res = [] raw = 0 def backtrack(track, n, raw): if len(track) == n: pan = ['.' * n] * n原创 2021-08-10 16:54:52 · 97 阅读 · 0 评论 -
全排列-回溯46-C++&python
版本一:给定一个 没有重复 数字的序列,返回其所有可能的全排列,按字典序输出。class Solution {public: void perm(vector<vector<int>>& res, vector<int>& arr, int p, int q){ vector<int> temp; if(p == q){ temp = arr;原创 2021-03-31 13:48:38 · 113 阅读 · 0 评论