
回溯
我很忙2010
咩
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode 2101. 引爆最多的炸弹
给你一个炸弹列表。一个炸弹的爆炸范围定义为以炸弹为圆心的一个圆。炸弹用一个下标从0开始的二维整数数组bombs表示,其中bombs[i] = [xi, yi, ri]。xi和yi表示第i个炸弹的 X 和 Y 坐标,ri表示爆炸范围的半径。你需要选择引爆一个炸弹。当这个炸弹被引爆时,所有在它爆炸范围内的炸弹都会被引爆,这些炸弹会进一步将它们爆炸范围内的其他炸弹引爆。给你数组bombs,请你返回在引爆一个炸弹的前提下,最多能引爆的炸弹数目。示例...原创 2021-12-19 00:43:06 · 761 阅读 · 0 评论 -
leetcode 字符串的排列(java、python)
输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s = "abc"输出:["abc","acb","bac","bca","cab","cba"]限制:1 <= s 的长度 <= 8javaclass Solution { public void dfs(HashSet<String> res, char[] S, int k) { if(k==S.len...原创 2021-06-22 23:13:58 · 202 阅读 · 0 评论 -
leetcode 5759. 找出所有子集的异或总和再求和(C++)
一个数组的异或总和定义为数组中所有元素按位XOR的结果;如果数组为空,则异或总和为0。例如,数组[2,5,6]的异或总和为2 XOR 5 XOR 6 = 1。给你一个数组nums,请你求出nums中每个子集的异或总和,计算并返回这些值相加之和。注意:在本题中,元素相同的不同子集应多次计数。数组a是数组b的一个子集的前提条件是:从b删除几个(也可能不删除)元素能够得到a。示例 1:输入:nums = [1...原创 2021-05-16 18:31:48 · 716 阅读 · 0 评论 -
leetcode 面试题 08.08. 有重复字符串的排列组合(C++)
有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。示例1: 输入:S = "qqe" 输出:["eqq","qeq","qqe"]示例2: 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。 字符串长度在[1, 9]之间。C++class Solution {public: void dfs(unordered_set<string>& tmp, string& S, int st原创 2021-05-15 23:17:00 · 422 阅读 · 0 评论 -
leetcode 面试题 08.07. 无重复字符串的排列组合(C++)
无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。示例1: 输入:S = "qwe" 输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]示例2: 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。 字符串长度在[1, 9]之间。C++class Solution {public: void dfs(vector<string>&a.原创 2021-05-15 23:15:46 · 203 阅读 · 0 评论 -
leetcode 5681. 判断一个数字是否可以表示成三的幂的和(C++)
给你一个整数n,如果你可以将n表示成若干个不同的三的幂之和,请你返回true,否则请返回false。对于一个整数y,如果存在整数x满足y == 3x,我们称这个整数y是三的幂。示例 1:输入:n = 12输出:true解释:12 = 31 + 32示例 2:输入:n = 91输出:true解释:91 = 30 + 32 + 34示例 3:输入:n = 21输出:false提示:1 <= n <=...原创 2021-03-06 23:53:17 · 417 阅读 · 0 评论 -
leetcode 526. 优美的排列(C++)
假设有从 1 到 N 的N个整数,如果从这N个数字中成功构造出一个数组,使得数组的第i位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列。条件:第i位的数字能被i整除 i能被第i位上的数字整除现在给定一个整数 N,请问可以构造多少个优美的排列?示例1:输入: 2输出: 2解释: 第 1 个优美的排列是 [1, 2]: 第 1 个位置(i=1)上的数字是1,1能被 i(i=1)整除 第 2 个位置(...原创 2020-12-06 22:02:14 · 466 阅读 · 0 评论 -
leetcode 5520. 拆分字符串使唯一子字符串的数目最大(C++)
给你一个字符串s,请你拆分该字符串,并返回拆分后唯一子字符串的最大数目。字符串s拆分后可以得到若干非空子字符串,这些子字符串连接后应当能够还原为原字符串。但是拆分出来的每个子字符串都必须是唯一的。注意:子字符串是字符串中的一个连续字符序列。示例 1:输入:s = "ababccc"输出:5解释:一种最大拆分方法为 ['a', 'b', 'ab', 'c', 'cc'] 。像 ['a', 'b', 'a', 'b', 'c', 'cc'] 这样拆分不满足题目要求,...原创 2020-09-20 17:59:47 · 227 阅读 · 0 评论 -
leetcode 1415. 长度为 n 的开心字符串中字典序第 k 小的字符串(C++)
一个 「开心字符串」定义为:仅包含小写字母['a', 'b', 'c']. 对所有在1到s.length - 1之间的i,满足s[i] != s[i + 1](字符串的下标从 1 开始)。比方说,字符串"abc","ac","b"和"abcbabcbcb"都是开心字符串,但是"aa","baa"和"ababbc"都不是开心字符串。给你两个整数n和...原创 2020-04-24 19:37:10 · 606 阅读 · 0 评论 -
LeetCode 129. 求根到叶子节点数字之和(C++、python)
给定一个二叉树,它的每个结点都存放一个0-9的数字,每条从根到叶子节点的路径都代表一个数字。例如,从根到叶子节点路径1->2->3代表数字123。计算从根到叶子节点生成的所有数字之和。说明:叶子节点是指没有子节点的节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 25解释:从根到叶子节点路径 1->2 ...原创 2019-01-02 19:10:29 · 347 阅读 · 0 评论 -
牛客网——矩阵中的路径(C++)
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中的...原创 2020-01-15 14:15:04 · 333 阅读 · 0 评论 -
LeetCode 16. 最接近的三数之和(C++、python)
给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).C++class Solutio...原创 2018-12-21 18:43:17 · 142 阅读 · 0 评论 -
LeetCode 90. 子集 II(C++、python)
给定一个可能包含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: [1,2,2]输出:[ [2], [1], [1,2,2], [2,2], [1,2], []]C++class Solution {public: void DFS(set<vector<int&g...原创 2018-12-19 22:52:45 · 302 阅读 · 0 评论 -
LeetCode 77. 组合(C++、python)
给定两个整数n和k,返回 1 ...n中所有可能的k个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]C++class Solution {public: void DFS(vector<vector<int>&g...原创 2018-12-19 22:32:36 · 300 阅读 · 0 评论 -
LeetCode 216. 组合总和 III(C++、python)
找出所有相加之和为n的k个数的组合。组合中只允许含有 1 -9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。 解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]C++cl...原创 2018-12-18 20:05:24 · 283 阅读 · 0 评论 -
LeetCode 491. 递增子序列(C++)
给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明:给定数组的长度不会超过15。数组中的整数范围是[-100,100]。给定数组中可能...原创 2018-12-16 15:30:15 · 1023 阅读 · 0 评论 -
leetcode 1286. 字母排列迭代器(C++)
请你设计一个迭代器类,包括以下内容:一个构造函数,输入参数包括:一个有序且字符唯一的字符串characters(该字符串只包含小写英文字母)和一个数字combinationLength。 函数next(),按字典序返回长度为combinationLength的下一个字母排列。 函数hasNext(),只有存在长度为combinationLength的下一个字母...原创 2019-12-14 23:31:30 · 221 阅读 · 0 评论 -
leetcode 1219. 黄金矿工(C++)
你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为m * n的网格grid进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是0。为了使收益最大化,矿工需要按以下规则来开采黄金:每当矿工进入一个单元,就会收集该单元格中的所有黄金。 矿工每次可以从当前位置向上下左右四个方向走。 每个单元格只能被开采(进入)一次。 不得...原创 2019-12-03 13:01:56 · 812 阅读 · 0 评论 -
LeetCode 39. 组合总和(C++、python)
给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。 解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7,所求解集为...原创 2018-12-17 19:57:15 · 167 阅读 · 0 评论 -
LeetCode 40. 组合总和 II(C++、python)
给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,所求解集...原创 2018-12-17 20:36:08 · 170 阅读 · 0 评论 -
leetcode 842. 将数组拆分成斐波那契序列(C++)
给定一个数字字符串S,比如S = "123456579",我们可以将它分成斐波那契式的序列[123, 456, 579]。形式上,斐波那契式序列是一个非负整数列表F,且满足:0 <= F[i] <= 2^31 - 1,(也就是说,每个整数都符合 32 位有符号整数类型); F.length >= 3; 对于所有的0 <= i < F.length ...原创 2019-06-07 16:01:48 · 457 阅读 · 0 评论 -
leetcode 113. 路径总和 II(C++、python)
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ ...原创 2019-06-20 20:17:42 · 197 阅读 · 0 评论 -
leetcode 93. 复原IP地址(C++)
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。示例:输入: "25525511135"输出: ["255.255.11.135", "255.255.111.35"]C++class Solution {public: bool judge(string s, int start, int i) { string str...原创 2019-07-19 19:33:53 · 499 阅读 · 0 评论 -
leetcode 638. 大礼包(C++、python)
在LeetCode商店中, 有许多在售的物品。然而,也有一些大礼包,每个大礼包以优惠的价格捆绑销售一组物品。现给定每个物品的价格,每个大礼包包含物品的清单,以及待购物品清单。请输出确切完成待购清单的最低花费。每个大礼包的由一个数组中的一组数据描述,最后一个数字代表大礼包的价格,其他数字分别表示内含的其他种类物品的数量。任意大礼包可无限次购买。示例 1:输入: [2,5],...原创 2019-07-22 20:38:03 · 554 阅读 · 0 评论 -
leetcode 131. 分割回文串(C++)
给定一个字符串s,将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例:输入:"aab"输出:[ ["aa","b"], ["a","a","b"]]C++class Solution {public: bool judge(string s, int left, int right) { wh...原创 2019-04-18 19:17:23 · 645 阅读 · 0 评论