
回溯算法
lyd1995
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode17-电话号码的字母组合
LeetCode17-电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:“23” 输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。...原创 2019-02-20 15:03:21 · 184 阅读 · 0 评论 -
LeetCode131-分割回文串
给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。 返回 s 所有可能的分割方案。 示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ] 一、思路 (一)回溯法 之前的回溯算法里提到过,凡是求解带“所有”这类的字眼的题目,都可以采取回溯,回溯法每次递归都解决一小部分问题。 这里的“一小部分问题”应该是:寻找从当前位置出发的一个回...原创 2019-06-17 15:03:37 · 250 阅读 · 0 评论 -
LeetCode93-复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 示例: 输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35"] 一、思路 求“所有”的问题,一般都能用回溯法来解决 这里需要注意一下,回溯是有条件的 ...原创 2019-04-29 20:15:57 · 500 阅读 · 0 评论 -
LeetCode78-子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 一、思路 (一)回溯算法 求全部子集,这一类包含“全部”字样的问题都能使用回溯算法解决 问题在于,...原创 2019-04-10 09:08:20 · 188 阅读 · 0 评论 -
LeetCode77-组合
LeetCode77-组合 给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 一、回溯算法 很明显的回溯特征,凡是要求列出全部的可能的题目都可以用回溯算法解决 并且数字都是有序的,可以加以利用,使得确保:n...原创 2019-03-28 17:19:09 · 163 阅读 · 0 评论 -
腾讯机试题1
小Q打算穿越怪兽谷,他不会打怪,但是他有钱。他知道,只要给怪兽一定的金币,怪兽就会一直护送他出谷。 在谷中,他会一次遇见N只怪兽,每只怪兽都有自己的武力值和要“贿赂”它所需的金币。如果小Q没有“贿赂”它而它的武力值又高于护送小Q的所有怪兽的武力值之和,这只怪兽就会攻击小Q 小Q想知道,要想成功穿越怪兽谷而不被攻击,最少要准备多少金币? 输入描述: 第一行:输入一个整数N,代表怪兽的数量 第二行:输...原创 2019-04-06 18:33:42 · 746 阅读 · 1 评论 -
LeetCode40-组合总和 II
LeetCode40-组合总和 II 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,5], ta...原创 2019-03-13 18:07:04 · 131 阅读 · 0 评论 -
LeetCode39-组合总和
LeetCode39-组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例 1: 输入: candidates = [2,3,6,7], target...原创 2019-03-12 11:50:36 · 117 阅读 · 0 评论 -
LeetCode47-全排列 II
LeetCode47-全排列 II 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 一、思路 (一)回溯算法 无重复的全排列可以使用回溯算法,那么有重复的可不可以呢? 当然可以,只要使用集合去重即可!!! C++代码: class Solution { public: set...原创 2019-03-14 15:05:26 · 123 阅读 · 0 评论 -
LeetCode46-全排列
LeetCode46-全排列 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 一、思路 (一)可移动数 这个方法需要记录每个数的移动方向(向左or向右),而且当最大数不能移动时,还要寻找下一个可移动的最大数,移动之...原创 2019-03-14 13:42:21 · 233 阅读 · 0 评论 -
leetcode306-累加数
给定一个只包含数字 ‘0’-‘9’ 的字符串,编写一个算法来判断给定输入是否是累加数。 说明: 累加序列里的数不会以 0 开头,所以不会出现 1, 2, 03 或者 1, 02, 3 的情况。 示例 1: 输入: "112358" 输出: true 解释: 累加序列为: 1, 1, 2, 3, 5, 8 。1 + 1 = 2, 1 + 2 = 3, 2 + 3 = 5, 3 + 5 = 8 示...原创 2019-09-17 11:24:00 · 262 阅读 · 0 评论