剑指offer
weixin_43938616
这个作者很懒,什么都没留下…
展开
-
剑指offer10-I.斐波那契数列
剑指offer10-I.斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 思路:思路没啥可说的,不能用递归,会超时,用循环即原创 2021-01-25 15:02:52 · 51 阅读 · 0 评论 -
剑指offer09.用两个栈实现队列
剑指offer09.用两个栈实现队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 思路:由于栈是后进先出,所以两个栈分别表示队列的顺序和逆序,进队时进顺序的栈,出队是出逆序的栈。像两个桶倒来倒去为了拿头和尾。为了优化,不用每次入队出队交替时都进行顺序和逆序的转换,入队直接加入到顺序栈,出队时若逆序栈不为空则直接出栈,为空则说明之前原创 2021-01-25 14:47:49 · 65 阅读 · 0 评论 -
剑指offer07.重建二叉树
剑指offer07.重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 思路:首先前序遍历的第一个元素一定是根节点,在中序遍历中找到根节点所在位置后,其左右的元素就分别在其左右子树上,并且是对应的中序遍历。对左右子树做同样的操作。用递归实现。 代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode原创 2021-01-25 13:48:22 · 51 阅读 · 0 评论