回溯
weixin_39137699
阳光,热情,幽默
展开
-
leetcod212hard单词搜搜II回溯
给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。 示例: 输入: words = [“oath”,“pea”,“eat”,“rain”] and board = [ [‘o’,‘a’,...原创 2020-02-27 14:12:58 · 298 阅读 · 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 · 161 阅读 · 0 评论 -
leetcode 22括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ “((()))”, “(()())”, “(())()”, “()(())”, “()()()” ] 思路: 回溯法,刚开始没有想到好的办法进行剪枝,后来看了评论才知道,定义左右剩余的括号数,进行递归,真的好思路,好方法。 class Solution { ...原创 2019-12-05 16:03:49 · 69 阅读 · 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 · 76 阅读 · 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 · 79 阅读 · 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 · 69 阅读 · 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 · 557 阅读 · 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())+1 class Solution { public List<List<...原创 2019-12-02 18:48:04 · 51 阅读 · 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 · 69 阅读 · 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 · 64 阅读 · 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 · 47 阅读 · 0 评论 -
leetcode 36有效的数独,leetcode 37解数独
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 ‘.’ 表示。 示例 1: 输入: [ [“5”,“3”,".",".",“7”,".",".",...原创 2019-11-25 16:28:45 · 130 阅读 · 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 · 151 阅读 · 0 评论