随笔分类 -  递归

摘要:举个例子,比如你要对a,b,c三个字符进行全排列,那么它的全排列有abc,acb,bac,bca,cba,cab这六种可能,你们想想你们是如何得出这六种可能的。没错!就是当指针指向第一个元素a时,它可以是其本身a(即和自己进行交换),还可以和b,c进行交换,故有3种可能,当第一个元素a确定以后,指针 阅读全文
posted @ 2020-01-09 09:23 Assange 阅读(192) 评论(0) 推荐(0)
摘要:题目描述 请实现两个函数,分别用来序列化和反序列化二叉树 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节 阅读全文
posted @ 2020-01-01 19:36 Assange 阅读(311) 评论(0) 推荐(0)
摘要:题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 1 class Solution: 2 def isSymmetrical(self, pRoot): 3 # write code here 4 def mirror(left 阅读全文
posted @ 2020-01-01 09:34 Assange 阅读(195) 评论(0) 推荐(0)
摘要:题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 1 # -*- coding:utf-8 -*- 2 class Solution: 3 def Sum_Solution(self, n): 4 阅读全文
posted @ 2019-12-27 17:02 Assange 阅读(228) 评论(0) 推荐(0)
摘要:题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 1 class Solution: 2 def IsBalanced_Solution(self, pRoot): 3 # write code here 4 if pRoot == None: 5 return True 6 if abs( 阅读全文
posted @ 2019-12-25 16:49 Assange 阅读(284) 评论(0) 推荐(0)
摘要:题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路 根节点将left连接到左子树的最右节点, 将right连接到右子树的最左节点 需要注意的是,我们要返回的是头节点,即最左边的节点,所以递归返回的是最左边的节点 右子树的 阅读全文
posted @ 2019-12-17 16:41 Assange 阅读(402) 评论(0) 推荐(0)
摘要:题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 这道题特别傻的地方: 当输入sequence为空时返回false,但是递归规程中为空要返回true 1 # -*- coding:utf-8 -*- 阅读全文
posted @ 2019-12-12 08:58 Assange 阅读(210) 评论(0) 推荐(0)
摘要:题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 1 class Solution: 2 # 返回镜像树的根节点 3 def Mirror(self, root): 4 # write code here 5 if root==None: 6 return None 7 #处理根节点 8 ro 阅读全文
posted @ 2019-12-09 18:53 Assange 阅读(227) 评论(0) 推荐(0)
摘要:题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 1 class Solution: 2 def HasSubtree(self, pRoot1, pRoot2): 3 # write code here 4 if pRoot1==None or 阅读全文
posted @ 2019-12-09 18:41 Assange 阅读(198) 评论(0) 推荐(0)
摘要:给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。 示例 1: 输入: Tree 1 Tree 2 1 2 阅读全文
posted @ 2019-10-12 11:08 Assange 阅读(214) 评论(0) 推荐(0)
摘要:根据一棵树的前序遍历与中序遍历构造二叉树。 注意:你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7 1 class Solution 阅读全文
posted @ 2019-09-12 14:44 Assange 阅读(331) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果: [ [3], [9,20], [15,7]] 1 class Solution: 2 d 阅读全文
posted @ 2019-09-10 09:21 Assange 阅读(229) 评论(0) 推荐(0)
摘要:给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1: 示例 2: 低级做法,中序遍历,看看是否是有序的 给定一个二叉树,判断其是否是一个有效的 阅读全文
posted @ 2019-09-09 09:05 Assange 阅读(228) 评论(0) 推荐(0)
摘要:给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board =[ ['A','B','C','E'], ['S','F','C','S'] 阅读全文
posted @ 2019-09-05 09:03 Assange 阅读(402) 评论(0) 推荐(0)
摘要:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []] 思路:回溯,在循环中嵌套递归,递归自然 阅读全文
posted @ 2019-09-04 11:06 Assange 阅读(232) 评论(0) 推荐(0)
摘要:n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回 n 皇后不同的解决方案的数量。 示例: 2019-05-10 16:19:39 阅读全文
posted @ 2019-05-10 16:22 Assange 阅读(232) 评论(0) 推荐(0)
摘要:实现 pow(x, n) ,即计算 x 的 n 次幂函数。 示例 1: 输入: 2.00000, 10 输出: 1024.00000 示例 2: 输入: 2.10000, 3 输出: 9.26100 示例 3: 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 阅读全文
posted @ 2019-05-08 17:57 Assange 阅读(191) 评论(0) 推荐(0)
摘要:给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 对比46题增加了used数组,判断该数上次是否使用过。 TIME:O(N!) SPACE:O(N) 阅读全文
posted @ 2019-05-06 11:21 Assange 阅读(246) 评论(0) 推荐(0)
摘要:给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 无奈,用swap的方法从左向右滑动,直到最后结果和最初的一致停止,只适用于三位数。。。。(改进一下让每个数字作为第一位后面的进行滑动,应该可以pass,放弃) 错: 正确做法bt: 添加顺序就是[1,2,3],[1,3,2],[2,1,3 阅读全文
posted @ 2019-05-04 10:49 Assange 阅读(392) 评论(0) 推荐(0)
摘要:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1: 示例 2: 20 阅读全文
posted @ 2019-05-01 20:33 Assange 阅读(194) 评论(0) 推荐(0)