剑指offer
山间有水
不想成为大佬的小菜鸟不是好菜鸟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【剑指offer】【JavaScript版】 斐波那契数列
描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 0 1 1 2 3 5 8 13… 解题 把f(n-1)和f(n-2)的数保存起来,然后根据f(n-1)和f(n-2)计算出f(n) 代码如下 function Fibonacci(n) { if(n<2){return n} var preone ...原创 2019-06-12 15:23:17 · 326 阅读 · 0 评论 -
【剑指offer】【javascript】跳台阶
描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 一级台阶:1种 二级台阶:2种(跳1级或跳2级) 三级台阶:3种(1 1 1, 1 2, 2 1) 四级台阶:4种(1 1 2, 2 2,1 1 1 1, 1 2 1, 2 1 1) … 根据上面几个举例可以得出f(n)= f(n-1)+f(n-2) 代码实现 functi...原创 2019-06-12 16:01:09 · 260 阅读 · 0 评论 -
【剑指offer】【javascript】变态跳台阶
描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 一级:1种 二级:2种(1 1, 2) 三级:4种(1 2, 1 1 1, 2 1, 3) 四级:8种(1 1 2, 2 2, 1 2 1, 1 1 1 1, 2 1 1, 3 1 , 1 3, 4) 五级:16种(1 2 2, 1 1 1 2, 2 1 2, 3 2, 2 3...原创 2019-06-12 16:43:54 · 291 阅读 · 0 评论 -
【剑指offer】【js】用两个栈实现一个队列
题目 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 就相当于这里的push是队列中的入列,pop是队列中的出列,那么主要的操作就是在pop中实现了,因为队列中的入列和入栈是一样的 1、先构造一个Stack的构造函数; 2、创建两个栈stack1, stack2 ,把stack2看作一个过渡的栈 举例:将1,2,3,4,5,6依次入栈,存入stack1中 即s...原创 2019-05-24 17:34:56 · 517 阅读 · 0 评论 -
【剑指offer】【JavaScript】调整数组顺序使奇数位于偶数前面
描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 举个列子吧 2 3 4 1 6 9 7 输出之后就是 3 1 9 7 2 4 6 我的思路就是创建两个空数组分别放奇数和偶数,for循环原数组,将分辨出的奇数和偶数放在两个数组中,最后用concat 拼接一下 代码 fu...原创 2019-06-12 20:27:09 · 223 阅读 · 0 评论 -
【剑指offer】【JavaScript】链表中倒数第k个结点
描述 输入一个链表,输出该链表中倒数第k个结点。 思路 创建两个指针,都指向头节点,让第一个指针先走k-1步,到达第k个结点,然后让第二个指针从头节点开始走(这时第一个指针和第二个指针相差k-1个节点),第一个节点继续走,当第一个节点到达末尾时(这时第一个指针和第二个指针相差k-1个节点),所以此时第二个节点所在的位置就是倒数第k个节点 代码 /*function ListNode(x){ ...原创 2019-06-13 19:51:01 · 605 阅读 · 0 评论 -
【剑指offer】【JavaScript】栈的压入,弹出序列
题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 解析 这道题用的是栈的思想,之前在leetcode上做过几道这样的题,由于没有经常复习...原创 2019-06-28 10:29:31 · 234 阅读 · 0 评论
分享