![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Offer·JS题解
心谭
公众号搜索:「心谭博客」
专注前端与算法,一起 day day up!
展开
-
剑指offer - 二进制中1的个数 - JavaScript
专注前端与算法的系列干货分享,欢迎关注(¬‿¬):「微信公众号:心谭博客」| xxoo521.com | GitHub题目描述输入一个整数,输出该数二进制表示中 1 的个数。其中负数用补码表示。解法 1: 判断每一位依次判断数字的每一位,统计其中 1 的数量。整体思路如下:数字先和 1 相与,结果为 0 说明改位是 1,结果为 1 说明该位是 1将 1 左移一位,再和数字相与。...原创 2020-01-02 22:43:45 · 210 阅读 · 0 评论 -
剑指offer - 青蛙跳台阶 - JavaScript
专注前端与算法的系列干货分享,欢迎关注(¬‿¬):「微信公众号:心谭博客」| xxoo521.com | GitHub题目描述一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。解法 1: 斐波那契数列这题其实就是在求斐波那契数列。理解起来也很简单。假设跳到 n 级台阶有 f(n)种方法。根据题目,青蛙在跳...原创 2020-01-02 22:42:03 · 259 阅读 · 0 评论 -
剑指offer - 斐波那契数列 - JavaScript
专注前端与算法的系列干货分享,欢迎关注(¬‿¬):「微信公众号:心谭博客」| xxoo521.com | GitHub题目描述大家都知道斐波那契数列,现在要求输入一个整数 n,请你输出斐波那契数列的第 n 项(从 0 开始,第 0 项为 0)。n<=39。解法 1: 数学定义根据数学定义:f(n) = f(n - 1) + f(n - 2)。最初始情况是f(0) = 0和f(1...原创 2020-01-02 22:39:57 · 304 阅读 · 0 评论 -
剑指offer-旋转数组的最小数字-JavaScript
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为 1。NOTE:给出的所有元素都大于 0,若数组大小为 0,请返回 0。解法 1:暴力法遍历一次,直接找到比较出最小的数字。时间复杂度是 O(N),空间复杂度是 O(1)。...原创 2019-12-28 22:11:27 · 192 阅读 · 0 评论 -
剑指offer - 用两个栈(队列)实现队列(栈) - JavaScript
专注前端与算法的系列干货分享,欢迎关注(¬‿¬):「微信公众号:心谭博客」| xxoo521.com | GitHub题目描述用两个栈来实现一个队列,完成队列的 Push 和 Pop 操作。 队列中的元素为 int 类型。解法 1: 利用栈的特性栈的特性是:后入先出。根据题目提示,使用 2 个栈即可。一个栈inStack用来存储插入队列的数据,一个栈outStack用来从队列中取出数...原创 2019-12-25 17:48:40 · 597 阅读 · 0 评论 -
剑指offer - 重建二叉树 - JavaScript
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解法 1: 递归首先前序/后序遍历 + 中序遍历可以重建二叉树。题目考察的就是前序+中序来重建二叉树,后序+中序的思路是类似的。例子与思路假设有二...原创 2019-12-21 23:50:18 · 171 阅读 · 0 评论 -
剑指offer - 从尾到头打印链表 - JavaScript
题目描述输入一个链表,按链表从尾到头的顺序返回一个 ArrayList。解法 1: 栈题目要求的是从尾到头。这种“后进先出”的访问顺序,自然想到了用栈。时间复杂度 O(N),空间复杂度 O(N)。// ac地址:https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035// 原文地址:https://xxoo52...原创 2019-12-21 23:49:13 · 159 阅读 · 0 评论 -
剑指offer - 二维数组中的查找 - JavaScript
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解法 1:暴力法遍历数组中的所有元素,找到是否存在。时间复杂度是 O(N^2),空间复杂度是 O(1)// ac地址:https://www.nowcoder.com/practice/ab...原创 2019-12-20 11:47:57 · 182 阅读 · 0 评论 -
剑指offer - 替换空格 - JavaScript
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为 We Are Happy.则经过替换之后的字符串为 We%20Are%20Happy。解法 1:正则表达式第一反应肯定正则表达式,在真正项目中,肯定也会选用正则来做匹配和替换。// ac地址:https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e...原创 2019-12-20 11:45:19 · 183 阅读 · 0 评论