
回溯
weixin_39137699
阳光,热情,幽默
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcod212hard单词搜搜II回溯
给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例:输入:words = [“oath”,“pea”,“eat”,“rain”] and board =[[‘o’,‘a’,...原创 2020-02-27 14:12:58 · 389 阅读 · 0 评论 -
leetcode 51N皇后 52N皇后II
n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入: 4输出: [[".Q…", // 解法 1“…Q”,“Q…”,“…Q....原创 2019-12-05 16:06:36 · 197 阅读 · 0 评论 -
leetcode 22括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]思路: 回溯法,刚开始没有想到好的办法进行剪枝,后来看了评论才知道,定义左右剩余的括号数,进行递归,真的好思路,好方法。class Solution { ...原创 2019-12-05 16:03:49 · 90 阅读 · 0 评论 -
leetcode93 复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: “25525511135”输出: [“255.255.11.135”, “255.255.111.35”]思路:回溯法。这题没有想象那么难,规则有点东西。用回溯就能做 击败81%,我将每次返回的list,拼接起来,再进行剪枝当遇上前缀的0时候,eg: “010010” 我用 if (mid.length(...原创 2019-12-04 22:20:42 · 104 阅读 · 0 评论 -
leetcode 39 组合总和 40组合总和II
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[[7]...原创 2019-12-04 17:12:19 · 103 阅读 · 0 评论 -
leetcode 131分割回文串
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: “aab”输出:[[“aa”,“b”],[“a”,“a”,“b”]]思路: 回溯法。只是记得Java的字符串分割函数s.substring(0,i)左闭右开区间。所以 for (int i = 1;i <= s.length();i++) { i<=s....原创 2019-12-04 11:08:09 · 94 阅读 · 0 评论 -
leetcode 17电话号码的字母转换
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].class Solution { private static final String[] str = {...原创 2019-12-02 20:25:05 · 605 阅读 · 0 评论 -
leetcode 77 组合
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]思路: 简单回溯, 为了优化,进行剪枝,i <= n-(k-tmp.size())+1class Solution { public List<List<...原创 2019-12-02 18:48:04 · 72 阅读 · 0 评论 -
leetcode 46 47
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]class Solution { public List<List<Integer>> permute(int[] nums) { List&l...原创 2019-12-02 18:06:03 · 91 阅读 · 0 评论 -
leetcode 90 子集II
给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: [1,2,2]输出:[[2],[1],[1,2,2],[2,2],[1,2],[]]思路: 这题必须去重 ,原先去重的方法是 i >0 && nums[i ] == nums[i-1]这样会把正确的思路给去掉,其实可以放入H...原创 2019-12-02 16:27:03 · 93 阅读 · 0 评论 -
leetcode 78 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]思路: 回溯法即可,注意递归到下一层是i+1.class Solution { public List<List&...原创 2019-12-02 16:24:21 · 77 阅读 · 0 评论 -
leetcode 36有效的数独,leetcode 37解数独
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7”,".",".",...原创 2019-11-25 16:28:45 · 171 阅读 · 0 评论 -
leetcode 79单词搜索
class Solution { final static int[][] dires = {{0,1},{0,-1},{1,0},{-1,0}}; public boolean exist(char[][] board, String word) { if(word == null || word.length() == 0) ...原创 2019-08-08 13:45:55 · 173 阅读 · 0 评论