08 2017 档案

摘要:这道题属于纯粹的字符串操作,要把一串单词安排成多行限定长度的字符串。主要难点在于空格的安排,首先每个单词之间必须有空格隔开,而当当前行放不下更多的单词并且字符又不能填满长度L时,我们要把空格均匀的填充在单词之间。如果剩余的空格量刚好是间隔倍数那么就均匀分配即可,否则还必须把多的一个空格放到前面的间隔 阅读全文
posted @ 2017-08-30 11:44 apanda009 阅读(519) 评论(0) 推荐(0)
摘要:字符串匹配的问题应该最先想到dp, 主要还是说一下动态规划的方法。跟Regular Expression Matching一样,还是维护一个假设我们维护一个布尔数组res[i],代表s的前i个字符和p的前j个字符是否匹配(这里因为每次i的结果只依赖于j-1的结果,所以不需要二维数组,只需要一个一维数 阅读全文
posted @ 2017-08-19 20:40 apanda009 阅读(157) 评论(0) 推荐(0)
摘要:第一想法是用HashSet<ListNode>, A list先遍历,存HashSet,然后B list遍历,发现ListNode存在就返回。但是这个方法不满足O(1)memory的要求。 再想了一会儿,略微受了点提醒,发现可以利用这个O(n) time做文章。这个条件方便我们scan list几次 阅读全文
posted @ 2017-08-19 18:20 apanda009 阅读(166) 评论(0) 推荐(0)
摘要:关于链表的题, 画图看看需要那几个节点, 一般都是接头节点(用作标记) 和遍历节点, 遍历的时候要判空, head.next != null 前一定要判head != null, 将尾节点置为空! 阅读全文
posted @ 2017-08-19 15:39 apanda009 阅读(101) 评论(0) 推荐(0)
摘要:The idea is try to replace every "++" in the current string s to "--" and see if the opponent has the chance to win or not, if the opponent is guarant 阅读全文
posted @ 2017-08-19 10:43 apanda009 阅读(170) 评论(0) 推荐(0)
摘要:You are playing the following Flip Game with your friend: Given a string that contains only these two characters: + and -, you and your friend take turns to flip two consecutive "++" into "--". The g... 阅读全文
posted @ 2017-08-19 09:09 apanda009 阅读(132) 评论(0) 推荐(0)
摘要:Leetcode 12, 13(需要考虑输入不合法的情况,比如“VV”或者“IIII”都是不合法的输入,要输出错误信息): if (s.indexOf(II) .. throw new A.... 如今我们最常见的罗马数字就是钟表的表盘符号:Ⅰ,Ⅱ,Ⅲ,Ⅳ(IIII),Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ 阅读全文
posted @ 2017-08-18 22:10 apanda009 阅读(169) 评论(0) 推荐(0)
摘要:The key of this problem is to think of using Stack, 阅读全文
posted @ 2017-08-16 22:10 apanda009 阅读(152) 评论(0) 推荐(0)
摘要:矩阵(一般是二维数组)操作的题目在面试中考察基础coding的时候比较常见,一般来说不带有太多算法思想,纯粹就是二维数组下标的操作。虽然比较简单,不过还是比较能体现基本的实现能力。LeetCode中关于矩阵操作的题目有以下几个:Spiral MatrixSpiral Matrix IIRotate 阅读全文
posted @ 2017-08-16 10:47 apanda009 阅读(491) 评论(0) 推荐(0)
摘要:这是一个矩阵操作的题目,目标很明确,就是如果矩阵如果有元素为0,就把对应的行和列上面的元素都置为0。这里最大的问题就是我们遇到0的时候不能直接把矩阵的行列在当前矩阵直接置0,否则后面还没访问到的会被当成原来是0,最后会把很多不该置0的行列都置0了。一个直接的想法是备份一个矩阵,然后在备份矩阵上判断, 阅读全文
posted @ 2017-08-16 10:44 apanda009 阅读(134) 评论(0) 推荐(0)
摘要:Implement a Comparator<Interval> Syntax: don't forget the public sign when defining a function 阅读全文
posted @ 2017-08-13 18:13 apanda009 阅读(112) 评论(0) 推荐(0)
摘要:Analysis: Try one more example, n = 3: 000 - 0 001 - 1 011 - 3 010 - 2 110 - 6 111 - 7 101 - 5 100 - 4 Comparing n = 2: [0,1,3,2] and n=3: [0,1,3,2,6, 阅读全文
posted @ 2017-08-12 13:05 apanda009 阅读(166) 评论(0) 推荐(0)
摘要:这道题是要求恢复一颗有两个元素调换错了的二叉查找树。一开始拿到可能会觉得比较复杂,其实观察出规律了就比较简单。主要还是利用二叉查找树的主要性质,就是中序遍历是有序的性质。那么如果其中有元素被调换了,意味着中序遍历中必然出现违背有序的情况。那么会出现几次呢?有两种情况,如果是中序遍历相邻的两个元素被调 阅读全文
posted @ 2017-08-12 12:26 apanda009 阅读(161) 评论(0) 推荐(0)
摘要:这道题是求解所有可行的二叉查找树,从Unique Binary Search Trees中我们已经知道,可行的二叉查找树的数量是相应的卡特兰数,不是一个多项式时间的数量级,所以我们要求解所有的树,自然是不能多项式时间内完成的了。算法上还是用求解NP问题的方法来求解,也就是N-Queens中介绍的在循 阅读全文
posted @ 2017-08-12 10:15 apanda009 阅读(164) 评论(0) 推荐(0)
摘要:方法一:分治法 TLE 最基本是得先清楚BST定义. 每个节点的所有左子节点值都比该节点小, 每个节点的所有右子节点值都比该节点小. 知道定义后在构建BST时可逐次选择value做根节点. 利用递归计算根节点左子树可能形状数目, 与根节点右子树可能形状数目, 最后将两个可能形状数目相乘得到所有可能的 阅读全文
posted @ 2017-08-12 09:56 apanda009 阅读(116) 评论(0) 推荐(0)
摘要:这道题还是对于Integer的处理,在Reverse Integer这道题中我有提到,这种题的考察重点并不在于问题本身,而是要注意corner case的处理,整数一般有两点,一个是正负符号问题,另一个是整数越界问题。思路比较简单,就是先去掉多余的空格字符,然后读符号(注意正负号都有可能,也有可能没 阅读全文
posted @ 2017-08-11 09:44 apanda009 阅读(218) 评论(0) 推荐(0)
摘要:要处理mid 的越界问题 阅读全文
posted @ 2017-08-09 13:26 apanda009 阅读(143) 评论(0) 推荐(0)
摘要:这道题是Search in Rotated Sorted Array的扩展,思路在Find Minimum in Rotated Sorted Array中已经介绍过了,和Find Minimum in Rotated Sorted Array唯一的区别是这道题目中元素会有重复的情况出现。不过正是因 阅读全文
posted @ 2017-08-09 11:51 apanda009 阅读(144) 评论(0) 推荐(0)
摘要:根据题意遍历 但是对于有序的数组还是用二分法效率比较高 这道题是Search in Rotated Sorted Array的扩展,区别就是现在不是找一个目标值了,而是在bst中找最小的元素。主要思路还是跟Search in Rotated Sorted Array差不多,还是通过左边界和中间的大小 阅读全文
posted @ 2017-08-09 11:47 apanda009 阅读(147) 评论(0) 推荐(0)
摘要:复杂度 时间 O(logN) 空间 O(1) 要求时间复杂度是O(logN) , 只能用二分法了, 其实, 对于排序好的数组多用二分法和双指针. 阅读全文
posted @ 2017-08-08 22:48 apanda009 阅读(128) 评论(0) 推荐(0)
摘要:The best strategy to play the game is to minimize the maximum loss you could possibly face. Definition of dp[i][j]: minimum number of money to guarant 阅读全文
posted @ 2017-08-08 20:36 apanda009 阅读(119) 评论(0) 推荐(0)
摘要:We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to guess which number I picked. Every time you guess wrong, I'll tell you whether the number is higher o... 阅读全文
posted @ 2017-08-08 18:05 apanda009 阅读(111) 评论(0) 推荐(0)
摘要:根据题目的条件: 只有充分挖掘利用才行啊 键值对!!! 将值作为键, 并置为负来判断是否遍历过 阅读全文
posted @ 2017-08-08 17:56 apanda009 阅读(158) 评论(0) 推荐(0)
摘要:这道题思路非常简单,就是按照数字位反转过来就可以,基本数字操作。但是这种题的考察重点并不在于问题本身,越是简单的题目越要注意细节,一般来说整数的处理问题要注意的有两点,一点是符号,另一点是整数越界问题。代码如下: 用的字符串, 考虑反转后大于MAX_VALUE: 用%翻转, / 递进 注意Integ 阅读全文
posted @ 2017-08-08 16:32 apanda009 阅读(142) 评论(0) 推荐(0)
摘要:类似200. Number of Islands, 但是lc考察的是题意的转化, 而不是光会个框架 考察: 对邻居的理解, 什么才是真正的邻居, 对邻居的遍历 UF 面试常考 阅读全文
posted @ 2017-08-08 09:19 apanda009 阅读(133) 评论(0) 推荐(0)
摘要:带重复节点的subset 阅读全文
posted @ 2017-08-08 08:17 apanda009 阅读(284) 评论(0) 推荐(0)
摘要:找规律? 我们通过举一些正确的例子,比如"9,3,4,#,#,1,#,#,2,#,6,#,#" 或者"9,3,4,#,#,1,#,#,2,#,6,#,#"等等,可以观察出如下两个规律: 1. 数字的个数总是比#号少一个 2. 最后一个一定是#号 那么我们加入先不考虑最后一个#号,那么此时数字和#号的 阅读全文
posted @ 2017-08-07 18:40 apanda009 阅读(161) 评论(0) 推荐(0)
摘要:Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. 是在l1的基础上连接的, 所以要注意需要链接l1 l2.next = l1; 需要不断更新前一个节点pre = ... 阅读全文
posted @ 2017-08-07 17:15 apanda009 阅读(94) 评论(0) 推荐(0)
摘要:这道题是比较常见的链表反转操作,不过不是反转整个链表,而是从m到n的一部分。分为两个步骤,第一步是找到m结点所在位置,第二步就是进行反转直到n结点。反转的方法就是每读到一个结点,把它插入到m结点前面位置,然后m结点接到读到结点的下一个。总共只需要一次扫描,所以时间是O(n),只需要几个辅助指针,空间 阅读全文
posted @ 2017-08-07 16:15 apanda009 阅读(112) 评论(0) 推荐(0)
摘要:这道题跟Insertion Sort List类似,要求我们用O(nlogn)算法对链表进行排序,但是并没有要求用哪一种排序算法,我们可以使用归并排序,快速排序,堆排序等满足要求的方法来实现。对于这道题比较容易想到的是归并排序,因为我们已经做过Merge Two Sorted Lists,这是归并排 阅读全文
posted @ 2017-08-07 14:27 apanda009 阅读(134) 评论(0) 推荐(0)
摘要:bst: 加count记住遍历过得点有几个点比当前的点小(作为当前节点的左子树的节点数), 返回右父节点的所有count 和, 向左遍历(想好建好树后最后的点向哪遍历, 向左遍历, 第一个点就遍历了右边的所有的节点) Time: O(NlogN), space: O(N) better than n 阅读全文
posted @ 2017-08-07 11:36 apanda009 阅读(194) 评论(0) 推荐(0)
摘要:Boyer-Moore Majority Vote algorithm The essential concepts is you keep a counter for the majority number X. If you find a number Y that is not X, the 阅读全文
posted @ 2017-08-07 09:08 apanda009 阅读(149) 评论(0) 推荐(0)
摘要:数组和字符串的分治法: 对返回值的操作(叶结点的+ 非叶结点的), 出口, 分治起始位置, 题目要求--返回值 难点在于从哪分(题目要求的理解? 中间?符号?)和叶结点情况的处理->返回值 见Different Ways to Add Parentheses 投票法: 根据majority 的特性 阅读全文
posted @ 2017-08-07 08:57 apanda009 阅读(109) 评论(0) 推荐(0)
摘要:在Binary Tree Level Order Traversal中我们是维护了一个队列来完成遍历,而在这里为了使每次都倒序出来,我们很容易想到用栈的结构来完成这个操作。有一个区别是这里我们需要一层一层的来处理(原来可以按队列插入就可以,因为后进来的元素不会先处理),所以会同时维护新旧两个栈,一个 阅读全文
posted @ 2017-08-07 00:07 apanda009 阅读(179) 评论(0) 推荐(0)
摘要:数组的题常用方法 :排序、最大值指针边走边找、最小值指针边走边找,数组的其他指针位置—顺序遍历, 逆序遍历,其他指针与最大值指针比较的后果或最小值指针 先想排序能否做: Stack 画图: 利用相对位置和大小pop找到最左边的位置, 和最右边的位置, 利用栈内的元素都是最小的特点, 找到要排序的su 阅读全文
posted @ 2017-08-06 22:34 apanda009 阅读(183) 评论(0) 推荐(0)
摘要:递归的题分为考察: 分治? 先序? 中序? 先序输入值? 全局辅助值? 全局结果值? 分治法(后序遍历), 先序输入值, 后序结果值 + 叶结点(叶结点也要操作 sum * 10 类似 513. Find Bottom Left Tree Value中的deep ) 这是一道树的题目,一般使用递归来 阅读全文
posted @ 2017-08-06 21:22 apanda009 阅读(119) 评论(0) 推荐(0)
摘要:现在开始考bfs 了吗, 根据size办事,分情况了 dfs: 先序遍历 + 树的深度, 跟此题类似: 199 Binary Tree Right Side View 阅读全文
posted @ 2017-08-06 18:08 apanda009 阅读(165) 评论(0) 推荐(0)
摘要:经典bfs, 不多说 阅读全文
posted @ 2017-08-06 17:39 apanda009 阅读(148) 评论(0) 推荐(0)
摘要:Max Stack: 实现用ddl + treeset. Node n = set.first() 阅读全文
posted @ 2017-08-06 17:36 apanda009 阅读(302) 评论(0) 推荐(0)
摘要:一个dp,f(i,j)表示前i个house都paint了且第i个house paint成color_j的最小cost。 背包问题同 Minimum Adjustment Cost Better Solution: O(N) time, O(1) space The basic idea is whe 阅读全文
posted @ 2017-08-06 16:51 apanda009 阅读(233) 评论(0) 推荐(0)
摘要:这道题要看出是背包问题,不容易,跟FB一面 paint house很像,比那个难一点 定义res[i][j] 表示前 i个number with 最后一个number是j,这样的minimum adjusting cost 阅读全文
posted @ 2017-08-06 14:12 apanda009 阅读(180) 评论(0) 推荐(0)
摘要:状态: 一维的肯定不行, 二维的三个变量轮着试了一下也不行, 干脆把三维的都装上, 方程: 用遍历到当前的状态时, 用不用的上当前的元素(如何判断, 根据题意和当前元素的有无对另一维状态变量的改变来判断)来划分情况, 然后看看是状态相加还是 求最大, 还是怎么的 初始化边界点很重要: 注意size都 阅读全文
posted @ 2017-08-06 12:05 apanda009 阅读(169) 评论(0) 推荐(0)
摘要:Given n unique integers, number k (1> kSumII(int[] A, int k, int target) { // write your code here ArrayList> ans = new ArrayList(); ArrayList list = new ArrayList(); ... 阅读全文
posted @ 2017-08-06 11:36 apanda009 阅读(153) 评论(0) 推荐(0)
摘要:状态和状态方程的思路和1 一样, 当前背包加用vs 不用, 找到与题意链接的一个状态, 再找他的对立面 一维 阅读全文
posted @ 2017-08-06 11:06 apanda009 阅读(176) 评论(0) 推荐(0)
摘要:用 integer.MIN_VALUE 来替代 根据当前背包能否用的上来求递推式, 结果是求m最大时的最大值, 因此要不断更新容量为j 时的最大值, 并更新全局最大值 阅读全文
posted @ 2017-08-05 23:46 apanda009 阅读(252) 评论(0) 推荐(0)
摘要:动态规划重点在于找到:维护量,递推式。维护量通过递推式递推,最后往往能得到想要的结果 先说说维护量,res[i][j]表示用s1的前i个字符和s2的前j个字符能不能按照规则表示出s3的前i+j个字符,如此最后结果就是res[s1.length()][s2.length()],判断是否为真即可。接下来 阅读全文
posted @ 2017-08-05 21:56 apanda009 阅读(142) 评论(0) 推荐(0)
摘要:res[i][j]表示Edit Distance between X数组的前i个元素以及Y数组的前j个元素,或者the minimum # of operations to convert X前i个元素 into Y的前j个元素 因为对于Xi 和 Yj,操作无非是 insert, delete, r 阅读全文
posted @ 2017-08-05 20:45 apanda009 阅读(208) 评论(0) 推荐(0)
摘要:状态方程时题意的转化, 通常要if, 遍历到当前状态时, 最后一个字母的情况与上一个或者上多个状态的关系 结果是最后的状态还是只是遍历到最后的状态求全局最优 如Longest Increasing Subsequence 阅读全文
posted @ 2017-08-05 18:19 apanda009 阅读(324) 评论(0) 推荐(0)
摘要:巧用 Integer.MAX_VALUE;来替换 true 阅读全文
posted @ 2017-08-05 17:52 apanda009 阅读(138) 评论(0) 推荐(0)
摘要:初始化, if 判断不同的状态 阅读全文
posted @ 2017-08-05 17:37 apanda009 阅读(127) 评论(0) 推荐(0)
摘要:You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? Have you met this question in a... 阅读全文
posted @ 2017-08-05 17:29 apanda009 阅读(120) 评论(0) 推荐(0)
摘要:矩阵的题常构造新的矩阵转化为题意, 简单的记忆化存储, 常用dfs的分治策略自底向下回溯, 找一条最小的最合适的路径 递归出口(出范围, 遍历过, 满足题意(到节点) ) , 递归条件(对邻居的判断, 遍历过, 出范围, 邻居), 返回值常用分治法(后序) 尾递归,递的时候是用的上面的值, 回的时候 阅读全文
posted @ 2017-08-05 14:27 apanda009 阅读(152) 评论(0) 推荐(0)
摘要:8/5 根据局部问题求全局变量问题( 遍历到n, n 也是最后一个), Longest Increasing Subsequence 能且最大最小的问题: //function for (int i = 1; i < A.length; i++) { can[i] = Integer.MAX_VAL 阅读全文
posted @ 2017-08-05 14:24 apanda009 阅读(188) 评论(0) 推荐(0)
摘要:BFS 1. matrix 邻居都是找好的, 但是此题是八邻居问题 2. visited 数组是防止邻居重叠遍历的问题和重复加入的问题, 而此题需要遍历所有的邻居 但是此题再往队列加的时候判断是否为'E', 并且将其转化为'B' 3. and all of its adjacent unreveal 阅读全文
posted @ 2017-08-05 10:22 apanda009 阅读(233) 评论(0) 推荐(0)
摘要:这道题让我们实现两数相加,但是不能用加号或者其他什么数学运算符号,那么我们只能回归计算机运算的本质,位操作Bit Manipulation,我们在做加法运算的时候,每位相加之后可能会有进位Carry产生,然后在下一位计算时需要加上进位一起运算,那么我们能不能将两部分拆开呢,我们来看一个例子759+6 阅读全文
posted @ 2017-08-04 21:18 apanda009 阅读(140) 评论(0) 推荐(0)
摘要:https://leetcode.com/problems/sum-of-two-integers/discuss/ 阅读全文
posted @ 2017-08-04 20:53 apanda009 阅读(207) 评论(0) 推荐(0)
摘要:这道题属于数值操作的题目,其实更多地是考察乘法运算的本质。基本思路是和加法运算还是近似的,只是进位和结果长度复杂一些。我们仍然是从低位到高位对每一位进行计算,假设第一个数长度是n,第二个数长度是m,我们知道结果长度为m+n或者m+n-1(没有进位的情况)。对于某一位i,要计算这个位上的数字,我们需要 阅读全文
posted @ 2017-08-04 15:00 apanda009 阅读(164) 评论(0) 推荐(0)
摘要:这道题是之前那道House Robber 打家劫舍的拓展,现在房子排成了一个圆圈,则如果抢了第一家,就不能抢最后一家,因为首尾相连了,所以第一家和最后一家只能抢其中的一家,或者都不抢,那我们这里变通一下,如果我们把第一家和最后一家分别去掉,各算一遍能抢的最大值,然后比较两个值取其中较大的一个即为所求 阅读全文
posted @ 2017-08-04 13:02 apanda009 阅读(201) 评论(0) 推荐(0)
摘要:The thinking is simple and is inspired by the best solution from Single Number II (I read through the discussion after I use DP).Assume we only have 0 阅读全文
posted @ 2017-08-04 09:00 apanda009 阅读(214) 评论(0) 推荐(0)
摘要:fb: 只用返回true or false。第二题先用set做,后来让改用constant space, 就用了sliding window这样 subarray sum 问题常用hashmap, 存count 值和坐标, 动归的感觉啊 fb:问了数组包含/不包含负数两种情况, 要用 preSum. 阅读全文
posted @ 2017-08-03 22:56 apanda009 阅读(242) 评论(0) 推荐(0)
摘要:这种考subarray sum 常用到累加和数组啊, 要清楚从哪到哪开始求和, 在看题意怎么判断就ok了, 数组subarray sum 问题常常用累加和基础上改变 没想到用hashmap O(n) 即可, 关键是存的都是k的余数, 然后余数相见等于零即可 if (k != 0) runningSu 阅读全文
posted @ 2017-08-03 21:48 apanda009 阅读(274) 评论(0) 推荐(0)
摘要:最好用栈来想问题, 当前元素比栈内元素大 或小的时候怎么办, 最后优化成单个变量, 数组的题除了常用动归, 也常用栈, 用动归前看看解决了重复计算问题吗? 得想出状态转移方程来, 不然就不是动归 阅读全文
posted @ 2017-08-03 21:31 apanda009 阅读(160) 评论(0) 推荐(0)
摘要:L: mirror tree: Traverse both left and right branches of the root symmetricaly and check if the values are equal. 想testcase, 如何遍历, 与谁比较, 是否为空, 就是判断值和关 阅读全文
posted @ 2017-08-03 19:35 apanda009 阅读(132) 评论(0) 推荐(0)
摘要:Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive. Example: Given nums = [-2, 0, 3, -5, 2, -1] sumRange(0, 2) -> 1 sumRange(2, 5) -> -1 sumRange(0... 阅读全文
posted @ 2017-08-03 16:21 apanda009 阅读(124) 评论(0) 推荐(0)
摘要:还是用一维动态规划中的“局部最优和全局最优法”。 内循环怎么写: dp[i] = Uw j = 1, ( w = i1/2) min(dp[i], dp[i - j*j] + 1); 写完之后做个test case, 看看初始值怎么写. 阅读全文
posted @ 2017-08-03 13:48 apanda009 阅读(109) 评论(0) 推荐(0)
摘要:矩阵dfs 走回路 的问题(最后没有在回走 Corner case), 先想好算法, 再自己画图走一遍试试, 递归出口, 注意 corner case, 什么时候符合题意, 什么时候往里面加元素, 边走边看需要 什么工具, 工具: map(方向), 结果容器, visited, 辅助容器或变量 阅读全文
posted @ 2017-08-03 12:10 apanda009 阅读(581) 评论(0) 推荐(0)
摘要:到叶子所以加(left == null && right == null && 当前值满足条件) 后序遍历 The basic idea is to subtract the value of current node from sum until it reaches a leaf node an 阅读全文
posted @ 2017-08-02 12:38 apanda009 阅读(132) 评论(0) 推荐(0)
摘要:矩阵的bfs, 考察: 1.哪些是先入队的? 外围? 还是遍历所有符合条件的? 此处改成Integer.Max_Value, 2.入队之后, 邻居元素怎么改让其入队. 怎么跳过不符合题意的元素, visited[] 是否使用 3一般用在改矩阵的题中 tips, 可以该元素e.g. 将'o' 改成'$ 阅读全文
posted @ 2017-08-02 11:45 apanda009 阅读(145) 评论(0) 推荐(0)
摘要:做个test case 看看起始点和终止点的位置, 构造树都不包括遍历过得 阅读全文
posted @ 2017-08-01 20:20 apanda009 阅读(139) 评论(0) 推荐(0)
摘要:分治法后序遍历建树 对数组, 输入值为数组(起始点和终止点控制数组的长度和节点的值 去掉用过的点的位置) : 1递归出口, if (prestart > preend || instart > inend) return null; 2构造节点, 根据数组的某个位置 3操作数组的长度, 起始点和终止 阅读全文
posted @ 2017-08-01 19:51 apanda009 阅读(200) 评论(0) 推荐(0)
摘要:递归后序遍历, 因为有返回值, 所以要后序遍历, 在递归回溯后返的时候进行操作: 一般在改变递归函数的输入值的时候加上 这句, 防止递归两次null改变两次输入值 if (root.left == null && root.right == null) { return root; } 先序遍历 阅读全文
posted @ 2017-08-01 10:49 apanda009 阅读(130) 评论(0) 推荐(0)