摘要:
1.要点搞清楚搜索二叉树和中序遍历的关系看看甜姨的递归(直接用答题的函数,一直往上return)2.题目给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。3.示例示例1:输入: 2 / \ 1 3输出: true示例2:输入: ... 阅读全文
摘要:
1.要点二叉树遍历重复在查找中查找某个数时(重复+查找=二重循环),应考虑是否可以用map2.题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。3.示例给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / ... 阅读全文
摘要:
1.要点动态规划思想斐波拉奇数列变种2.题目一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。3.示例示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:214.提示:0 <= n <= 100剑指Offer:面试题10-I. 斐波那契... 阅读全文
摘要:
1.要点Java中基本类型的取值范围斐波拉奇数列从后往前递归时会有大量重复运算。例如fn(10)=fn(9)+fn(8)fn(9)=fn(8)+fn(7)fn(8)重复运算了2.题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那... 阅读全文
摘要:
1.要点 使用java的同学请注意,如果你使用Stack的方式来做这道题,会造成速度较慢; 原因的话是Stack继承了Vector接口,而Vector底层是一个Object[]数组,那么就要考虑空间扩容和移位的问题了。 可以使用LinkedList来做Stack的容器,因为LinkedList实现了Deque接口,所以Stack能做的事LinkedList都能做,其本身结构是个双向链表,扩容消耗... 阅读全文