回溯
Sun_Sky_Sea
站在巨人的肩膀上
展开
-
79. 单词搜索
给定一个 m x n 二维字符网格 board 和一个字符串单词 word。如果 word 存在于网格中,返回 true;否则,返回 false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。board 和 word 仅由大小写英文字母组成。递归方法,并且回溯,具体看代码。...原创 2022-08-26 18:03:05 · 63 阅读 · 0 评论 -
47. 全排列 II
和49题比都是用回溯方法,有重复的元素,所以要进行去重操作,需要注意的是,去重一定要对元素经行排序,这样通过相邻的节点来判断是否重复使用了。输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。输入:nums = [1,1,2]输入:nums = [1,2,3]原创 2022-08-21 14:23:41 · 66 阅读 · 0 评论 -
46. 全排列
排列、组合、子集、切割、棋盘问题,都用回溯的方法来解题,回溯法必然用到递归,回溯的位置是在递归函数的下面。本体求解的是排列问题,回溯有固定的模板来解题,具体实现看代码及注释。输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。输入:nums = [1,2,3]输出:[[0,1],[1,0]]输入:nums = [0,1]输入:nums = [1]...原创 2022-08-14 23:44:23 · 112 阅读 · 0 评论 -
131. 分割回文串
131. 分割回文串 原始题目链接:https://leetcode-cn.com/problems/palindrome-partitioning/ 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 示例 1: 输入:s = “aab” 输出:[[“a”,“a”,“b”],[“aa”,“b”]] 示例 2: 输入:s = “a” 输出:[[“a”]] 解题思路: 看到题目要求所有可能的结果,而不是结果的个数,原创 2021-12-20 22:19:49 · 97 阅读 · 0 评论 -
95. 不同的二叉搜索树 II
95. 不同的二叉搜索树 II 原始题目链接:https://leetcode-cn.com/problems/unique-binary-search-trees-ii/ 给你一个整数 n ,请你生成并返回所有由 n 个节点组成且节点值从 1 到 n 互不相同的不同 二叉搜索树 。可以按 任意顺序 返回答案。 解题思路: 回溯法,定义一个函数:G(s, e)函数表示当前值的集合为[start,end],返回序列[start,end]生成的所有可行的二叉搜索树,枚举 [start,end] 中的值 i原创 2021-11-18 22:54:52 · 303 阅读 · 0 评论