![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
递归
然后就去远行吧
我们的目标是星辰大海~
展开
-
leetcode —— 40. 组合总和 II
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[[1, 7],[1, 2, 5],[2, 6],[1, 1, 6]]来源:力扣(LeetCode)原创 2020-06-19 12:09:12 · 198 阅读 · 0 评论 -
leetcode —— 39. 组合总和
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]解题思路:使用递归+回溯,为了避免组合出现重复,例如示例1中的重复组合[2,2,3原创 2020-06-19 10:00:00 · 130 阅读 · 0 评论 -
leetcode —— 38. 外观数列
「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1->12->113->214->12115->1112212中的11表示前一个序列1是由1个1表示的;3中的21表示2中的11是由2个1表示的,依次类推;解题思路:使用递归,要求第n个整数的输出,需要知道第n-1个数的序列,要知道第n-1个数的序列,需要知道第n-2个数的序列,以此类推,直到n=1,返回’1’。具体解题代码如下:# Pythonclass Sol原创 2020-06-19 08:19:12 · 133 阅读 · 0 评论 -
leetcode —— 29. 两数相除
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333…) = truncate(3)原创 2020-06-14 14:30:50 · 175 阅读 · 0 评论 -
面试题 08.09. 括号
括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。说明:解集不能包含重复的子集。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]解题思路:使用递归加回溯,统计出现的不同情况。class Solution: def __init__(self): self.lists = [] def generateParenthesis(self, n: int)原创 2020-05-15 02:08:32 · 205 阅读 · 0 评论 -
leetcode —— 1038. 从二叉搜索树到更大和树
给出二叉 搜索 树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。示例:输入:[4,1,6,0,2,5,7,null,null,null,3,null,nu...原创 2020-05-06 16:02:34 · 468 阅读 · 0 评论 -
leetcode —— 979. 在二叉树中分配硬币
给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应有 node.val 枚硬币,并且总共有 N 枚硬币。在一次移动中,我们可以选择两个相邻的结点,然后将一枚硬币从其中一个结点移动到另一个结点。(移动可以是从父结点到子结点,或者从子结点移动到父结点。)。返回使每个结点上只有一枚硬币所需的移动次数。示例 1:输入:[3,0,0]输出:2解释:从树的根结点开始,我们...原创 2020-05-06 02:41:07 · 239 阅读 · 0 评论 -
leetcode —— 965. 单值二叉树
如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。输入:[1,1,1,1,1,null,1]输出:true——————————————解题思路:对于当前节点,比较当前节点和左子节点的值是否相同,比较当前节点和右子节点的值是否相同。如果存在不同值,则直接返回False。如果值都相同,则使用递归函数比较其左子...原创 2020-04-25 01:09:35 · 156 阅读 · 0 评论 -
leetcode —— 235. 二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例1:输入: root = [6,2...原创 2020-04-25 01:01:56 · 191 阅读 · 0 评论 -
leetcode —— 46. 全排列(递归+回溯)
给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations著作权归领扣网络所有。商业转载请联系官方授权,非商业转...原创 2020-04-25 00:46:08 · 184 阅读 · 0 评论