- 博客(4)
- 收藏
- 关注
原创 回溯算法题目分析之求子集问题(三)
求子集问题 78.子集 题目链接:78. 子集 - 力扣(LeetCode) (leetcode-cn.com) 给你一个整数数组nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例一: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 示例二: 输入:nums = [0] 输出:[[],[0]] 思路 求...
2022-03-20 20:43:31
298
原创 回溯算法题目分析(二)
分割回文串问题 131.分割回文串 题目链接:131. 分割回文串 - 力扣(LeetCode) (leetcode-cn.com) 给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例一: 输入:s = "aab" 输出:[["a","a","b"],["aa","b"]] 示例二: 输入:s = "a" 输出:[["a"]] 思路 这题分为两个问题: 1.切割问题,把字符串切成若...
2022-03-20 20:18:23
242
原创 回溯算法题目分析(1)
组合问题 第77题.组合 在写题目前,我们先回顾一下我们的回溯算法的答题模板。 res = [] def backtrack(未探索区域, res, path): if 满足条件: res.append(path) # return # 如果不用继续搜索需要 return for 选择 in 未探索区域当前可能的选择: if 当前选择符合要求: backtrack(未探索区域, res, path+已探索
2022-03-16 09:33:29
301
原创 一看就懂,一写就懵?回溯算法讲解来了「leetcode」
回溯算法: 回溯是很经典的一个算法,什么是回溯,回溯其实是一种暴力枚举的方式,为啥都暴力了还是很经典的一种方法呢,其实是因为有些问题我们能暴力出来就不错了,就别要其他自行车了。 回溯算法能解决什么问题呢? 组合问题:N个数里面按一定规则找出k个数的集合 排列问题:N个数按一定规则全排列,有几种排列方式 切割问题:一个字符串按一定规则有几种切割方式 子集问题:一个N个数的集合里有多少符合条件的子集 棋盘问题:N皇后,解数独等等 如何理解回溯算法? 回溯法解决的问题都可以抽象为树形...
2022-03-15 23:28:10
569
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人