
回溯法
刷题
UPC YR
这个作者很懒,什么都没留下…
展开
-
Leetcode 37 解数独
Leetcode 37 解数独问题重述就是平常玩的数独,其中空格部分用‘.’表示。要求把数独填满。思路我们在这题用到回溯法,比较好懂,我们先将每一行每一列每一个九宫出现的数字分别用三个二维数组记录下来。比如row[0][1]=1说明第一出现过1这个数字。然后每一行利用for循环从数字1到9尝试,只要这个数字没有出现过,就先填入继续下一行搜索;找完以后进行回溯。具体看代码,简单易懂。注:事实上对于数独类型的题,有很多进阶的搜索方法和剪枝策略可以提高速度,如启发式搜索。(有兴趣的佬们可以尝试一下,反原创 2021-02-03 11:44:10 · 177 阅读 · 0 评论 -
Leetcode 40 组合总和②
Leetcode 40 组合总和②问题重述给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[[1, 7],[1, 2, 5],[2, 6],[1, 1, 6原创 2021-02-03 11:41:53 · 253 阅读 · 0 评论 -
Leetcode 47 全排列②
Leetcode 47 全排列②问题重述给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]思路本题是【46、全排列】的升级版,就是需要考虑重复数字。思路还是和46一样,用到回溯的思想。关键思想在这里。 if原创 2021-02-01 12:39:48 · 145 阅读 · 0 评论 -
Leetcode 46 全排列
Leetcode 46 全排列问题重述给定一个无重复数字的整数数组,求其所有的排列方式。输入:是一个一维整数数组,输出是一个二维数组,表示输入数组的所有排列方式。Input: [1,2,3]Output: [[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]可以以任意顺序输出,只要包含了所有排列方式即可。思路怎样输出所有的排列方式呢?对于每一个当前位置 i,我们可以将其于之后的任意位置交换,然后继续处理位置 i+1,直到处理到最后一位原创 2021-02-01 10:23:09 · 165 阅读 · 0 评论 -
Leetcode 937 最短的桥
Leetcode 937 最短的桥问题重述在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的 1 形成的一个最大组。)现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。返回必须翻转的 0 的最小数目。(可以保证答案至少是 1。)示例 1:输入:[[0,1],[1,0]] 输出:1示例 2:输入:[[0,1,0],[0,0,0],[0,0,1]] 输出:2就是1表示陆地,0是海洋,1连在一起为一整块陆地,一共有两片陆地,问两片陆地的最短距离。思路通过第一次遍原创 2021-01-29 11:01:42 · 183 阅读 · 0 评论 -
Leetcode 51 N皇后
Leetcode 51 N皇后问题重述n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]解释:如上图所示,4 皇后问题存在两个不同的解法。思路原创 2021-01-27 21:32:28 · 151 阅读 · 0 评论 -
Leetcode 79 单词搜索
Leetcode 79 单词搜索问题重述给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回 true给定 word = “SEE”, 返回 true给定 word原创 2021-01-27 21:30:50 · 146 阅读 · 0 评论