![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
回溯算法
回溯算法
从零开始的数据猿
这个作者很懒,什么都没留下…
展开
-
LeetCode 52. N皇后 II
题目 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。 解题思路 与N皇后思路一样,删一点代码即可 代码 class Solution { public Set<Integer> col,pie,na; public int res; int n; boolean[][] board; public int totalNQueens(int原创 2021-06-11 07:59:53 · 179 阅读 · 2 评论 -
LeetCode 51. N 皇后
题目 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。 示例 1: 输入:n = 4 输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]] 解释:如上图所示,4 皇后问题存在两个不同的解法。 示例 2: 输入:n = 1 输出:[[“原创 2021-06-10 09:35:24 · 103 阅读 · 0 评论 -
LeetCode 437. 路径总和 III
题目 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。 示例: root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8 10 / \ 5 -3 / \ \ 3 2 1原创 2021-06-04 07:12:16 · 271 阅读 · 0 评论 -
LeetCode 113. 路径总和 II
题目 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22 输出:[[5,4,11,2],[5,8,4,5]] 示例 2: 输入:root = [1,2,3], targetSum = 5 输出:[] 示例 3: 输入:root = [1,2], tar原创 2021-06-04 00:16:47 · 72 阅读 · 0 评论 -
LeetCode 257. 二叉树的所有路径
题目 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 解题思路 使用回溯算法 代码 回溯 class Solution { public void traversal(TreeNode cur, List<Intege原创 2021-05-19 20:58:40 · 248 阅读 · 1 评论 -
LeetCode 39. 组合总和
题目 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1: 输入:candidates = [2,3,6,7], target = 7, 所求解集为: [ [7], [2,2,3] ] 示例 2: 输入:candidates = [2,3,5], t原创 2021-05-08 10:10:36 · 81 阅读 · 0 评论 -
算法模板 回溯算法
回溯算法 排列 List<LinkedList<Integer>> res = new LinkedList<List<Integer>>(); public void backtrack(int[] nums,LinkedList<Integer> track) { if(track.size() == nums.length) { res.add(new LinkedList(track)); return; } for (原创 2021-03-04 12:25:53 · 5165 阅读 · 9 评论