DFS&回溯
Yobol2016
不积跬步无以至千里
展开
-
LeetCode 0072 -- 编辑距离
编辑距离题目描述给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入: word1 = "horse", word2 = "ros"输出: 3解释: horse -> rorse (将 'h' 替换为 'r')rorse -&g...原创 2019-12-01 10:57:46 · 138 阅读 · 0 评论 -
LeetCode 0140 -- 单词拆分II
单词拆分II题目描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = "catsanddog"wordDict = ["cat", "cats", "and", "sand...原创 2019-11-28 16:55:06 · 121 阅读 · 0 评论 -
LeetCode 0139 -- 单词拆分
单词拆分I题目描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leet...原创 2019-11-28 15:37:31 · 206 阅读 · 0 评论 -
LeetCode 0200 -- 岛屿数量
岛屿数量题目描述给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3解题思路个人AC遍历数组中...原创 2019-11-27 23:32:53 · 122 阅读 · 0 评论 -
LeetCode 0130 -- 被围绕的区域
被围绕的区域题目描述给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不...原创 2019-11-24 16:52:52 · 142 阅读 · 0 评论 -
LeetCode 0131 -- 分隔字符串
分割字符串题目描述给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: "aab"输出:[ ["aa","b"], ["a","a","b"]]解题思路个人ACclass Solution { public List<List<String>> partition(String ...原创 2019-11-20 22:59:05 · 196 阅读 · 0 评论 -
LeetCode 0098 -- 验证二叉搜索树
验证二叉搜索树题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 ...原创 2019-11-17 13:29:29 · 132 阅读 · 0 评论 -
LeetCode 0079 -- 单词搜索
单词搜索题目描述给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABC...原创 2019-11-16 15:14:13 · 123 阅读 · 0 评论 -
LeetCode 0078 -- 子集
子集题目描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。**说明:**解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]解题...原创 2019-11-15 12:31:50 · 101 阅读 · 0 评论 -
LeetCode 0046 -- 全排列
全排列题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解题思路个人AC没有思路QAQ。最优解回溯算法是一种尝试探索所有可能的候选解来找出所有解的算法。如果候选解被确认“不是一个解(或至少不是最后...原创 2019-11-10 17:52:41 · 105 阅读 · 0 评论 -
LeetCode 0022 -- 括号生成
括号生成题目描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]解题思路个人AC回溯算法可以用来穷尽复杂、递归问题的所有解。一般地,当遇到需要求出所有可能解的问题时,可以考虑从回溯(...原创 2019-11-05 15:30:02 · 131 阅读 · 0 评论 -
LeetCode 0017 -- 电话号码的字母组合
电话号码的字母组合题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WYlmKGLl-1572877517776)(assets/17_telephone_keypad.png)]示例:输入:"23"输出:["ad...原创 2019-11-04 22:26:35 · 117 阅读 · 0 评论