
算法之剑指Offer
highcoder1
这个作者很懒,什么都没留下…
展开
-
【剑指Offer】旋转数组的最小元素——JavaScript实现
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 分析 这道题可以很简单地遍历一次,即可得答案,时间复杂度为O(n),但是没有用到旋转数组的特原创 2017-11-28 17:08:33 · 807 阅读 · 0 评论 -
【剑指Offer】斐波那契数列及其延伸问题——JavaScript实现
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 分析 斐波那契数列是这样一个数列,第1项、第2项都为1,后面每项是前两项之和:1,1,2,3,5,8,13,21,34...。这个问题用递归解决的话,核心代码只需两行,但是放在OJ上跑,可能AC不了,因为其中存在大量子问题重复计算的情况,所以下面用非递归实现: function Fibonacci原创 2017-12-01 13:55:43 · 627 阅读 · 0 评论 -
【剑指Offer】重建二叉树——JavaScript实现
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。(牛客网题目,跟原书稍有差别) 分析(适合能手画出树结构,但是不知道该从哪开始写代码的人):前序遍历的第一个节点就是根节点,在中序中,以这个根节点原创 2017-11-27 17:08:35 · 474 阅读 · 0 评论