![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Offer
NikitaChrn
这个作者很懒,什么都没留下…
展开
-
剑指offer(3)从尾到头打印链表 --JS
题目描述输入一个链表,从尾到头打印链表每个节点的值。题目分析比较简单,主要注意下从尾到头,可以用栈可以用递归,我给出我比较喜欢的代码吧代码/* function ListNode(x){ this.val = x; this.next = null; }*/function printListFromTailToHead(head) { // write code here const res = []; let pNode = head; while (pNode !==原创 2021-09-13 15:29:04 · 79 阅读 · 0 评论 -
剑指offer(2)替换空格 --JS
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。题目分析我们如果要替换空格,两步:1先知道空格的位置,2替换,但是字符串中有多个空格,所以我们就要循环,替换完之后再去查找字符串空格位置或者你也可以选择用正则或者也可以先用字符串的split方法去掉字符串中的空格,并转换为一个数组,接着使用数组的join方法传入参数‘%20’,并变回字符串,代码function replaceSpac原创 2021-09-13 15:27:11 · 96 阅读 · 0 评论 -
剑指offer(1)二维数组的查找--JS
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。题目分析题目不难,而且给出的限制也很小。我借助了ES6中的扩展运算符‘…’ 及数组的新方法includes(判断数组是否包含某个元素)来实现。 let arr= ['baidu', 'google', 'taobao']; console.log(arr.includes('baidu')); //true原创 2021-09-13 14:40:59 · 46 阅读 · 0 评论 -
剑指offer(8)跳台阶--JS
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题目分析经过分析就知道这是斐波那契数列,所以可以动态规划来做a.第一次跳有两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1);b.假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2)c.由a\b假设可以得出总跳法为: f(n) = f(n-1) + f(n-2)d.然后通过实际的情况可以得出:只有一阶的时候 f(1) = 1 ,只有两阶的时原创 2021-09-11 14:13:27 · 114 阅读 · 0 评论 -
剑指offer(7)斐波那契数列--JS
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39题目分析我们都知道斐波那契可以用递归,但是递归重复计算的部分太多了(虽然可以通过),但是这道题更应该用动态规划来做,动态规划的特点是:最优子结构、无后效性、子问题重叠。话不多说,直接上代码代码function Fibonacci(n) { // write code here、 let f = 0, g = 1; while (n--) { g += f;原创 2021-09-11 13:36:35 · 52 阅读 · 0 评论