
回溯
文艺范ya
慢慢来吧,谁都有努力的过程
展开
-
LeetCode——39. 组合总和
题目描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。提示:1 <= candidates.length <= 301 <= candidates[i] <= 200candidate 中的每个元素都是独一无二的。1 <= ta原创 2021-03-19 11:08:51 · 138 阅读 · 0 评论 -
LeetCode——131. 分割回文串
题目描述:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案示例:输入: “aab”输出:[ ["aa","b"], ["a","a","b"]]代码如下:class Solution { public List<List<String>> partition(String s) { int len = s.length(); List<List<String&原创 2021-03-07 13:06:12 · 96 阅读 · 0 评论 -
LeetCode——组合
题目描述:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]代码如下:class Solution { public static List<List<Integer>> combine(int n, int k) { List<List<Integer原创 2021-03-07 10:43:53 · 111 阅读 · 0 评论 -
LeetCode——子集
题目描述:给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。提示:1 <= nums.length <= 10-10 <= nums[i] <= 10-10 <= nums[i] <= 10nums 中的所有元素 互不相同示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]原创 2021-03-07 10:12:14 · 276 阅读 · 2 评论 -
LeetCode——从根到叶的二进制数之和
题目描述:给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数01101,也就是 13 。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。返回这些数字之和。题目数据保证答案是一个 32 位 整数。示例1:输入:root = [1,0,1,0,1,0,1]输出:22解释:(100) + (101) + (110)原创 2020-11-25 21:53:59 · 135 阅读 · 0 评论 -
LeetCode——112. 路径总和
题目描述:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22,代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode原创 2020-11-25 21:48:49 · 136 阅读 · 0 评论 -
LeetCode——216. 组合总和 III(回溯算法)
题目描述:找出所有相加之和为 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]]代码如下:class Solution {public: vector<vector<int>>res;原创 2020-12-18 12:14:23 · 209 阅读 · 0 评论 -
LeetCode——46. 全排列
回溯算法全排列详细解析参考:回溯题目描述:给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]代码如下:(可做模板使用)class Solution {public: vector<vector<int> >res; vector<vector<int>> permute(vec原创 2020-12-18 10:54:21 · 185 阅读 · 0 评论