如何写出一个惊艳面试官的深拷贝?

2019-09-02
阅读 12 分钟
26.4k
里面的题目实现大多类似,而且说实话很多代码在我看来是非常简陋的,如果我作为面试官,看到这样的代码,在我心里是不会合格的,本篇文章我拿最简单的深拷贝来讲一讲。

前端该如何准备数据结构和算法?

2019-08-20
阅读 10 分钟
14.4k
实际上,当你了解了“数据结构”和“算法”存在的真正意义,以及一些实际的应用场景,对它有了一个整体的认知之后,你可能会对它产生强烈的兴趣。当然,它带将带给你的收益也是相当可观的。

[译]送你43道JavaScript面试题

2019-06-17
阅读 17 分钟
5.4k
这两天的GitHub Trending repositories被一个名叫 javascript-questions的项目霸榜了,项目中记录了一些JavaScript题目。

《剑指offer》分解让复杂问题更简单

2019-02-24
阅读 3 分钟
1.3k
输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用)

【剑指offer】让抽象问题具体化

2019-02-17
阅读 3 分钟
1.6k
1.包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路 1.定义两个栈,一个栈用于存储数据,另一个栈用于存储每次数据进栈时栈的最小值. 2.每次数据进栈时,将此数据和最小值栈的栈顶元素比较,将二者比较的较小值再次存入最小值栈. 4.数据栈出栈...

【前端面试】作用域和闭包

2019-02-16
阅读 7 分钟
3.5k
1. 题目 说一下对变量提升的理解 说明this的几种不同使用场景 创建10个a标签,点击的时候弹出来相应的序号 如何理解作用域 实际开发中闭包的应用 手动实现call apply bind 2. 知识点 2.1 执行上下文 范围:一段script或者一个函数 全局:变量定义、函数声明 script 函数:变量定义、函数声明、this、arguments (执行之...

【剑指offer】13.包含min函数的栈

2019-02-12
阅读 1 分钟
2.4k
题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 思路 1.定义两个栈,一个栈用于存储数据,另一个栈用于存储每次数据进栈时栈的最小值. 2.每次数据进栈时,将此数据和最小值栈的栈顶元素比较,将二者比较的较小值再次存入最小值栈. 4.数据栈出栈,最小值栈也...

《剑指offer》11.链表中倒数第k个节点

2019-01-27
阅读 1 分钟
2.3k
题目 输入一个链表,输出该链表中倒数第k个结点。 思路 简单思路: 循环到链表末尾找到 length 在找到length-k节点 需要循环两次。 优化:设定两个节点,间距相差k个节点,当前面的节点到达终点,取后面的节点。 前面的节点到达k后,后面的节点才出发。 本题目着重考察代码鲁棒性、容错率: 需要考虑head为null,k为0,k...

【剑指offer】10.程序的完整性

2019-01-22
阅读 1 分钟
1.6k
题目1 数值的整数次方 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 思路 这道题逻辑上很简单,但很容易出错。 关键是要考虑全面,考虑到所有情况。 exponent 是正,负,0的情况 base为0的情况。 代码 {代码...} 题目2 调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函...

【剑指offer】9.二进制中1的个数

2019-01-20
阅读 1 分钟
2k
题目 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 分析 这是一道考察二进制的题目 二进制或运算符(or):符号为|,表示若两个二进制位都为0,则结果为0,否则为1。 二进制与运算符(and):符号为&,表示若两个二进制位都为1,则结果为1,否则为0。 二进制否运算符(not):符号为~,表示对...

【剑指offer】8.斐波那契数列

2019-01-19
阅读 2 分钟
1.7k
题目 题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 基本思路 这道题在剑指offer中实际是当作递归的反例来说的。 递归的本质是吧一个问题分解成两个或者多个小问题,如果多个小问题存在互相重叠的情况,那么就存在重复计算。 f(n) = f(n-1) + f(n-2) 这...

【剑指offer】7.旋转数组的最小数字

2019-01-17
阅读 2 分钟
3.3k
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。

【剑指offer】6.用两个栈实现队列

2019-01-16
阅读 1 分钟
1.7k
题目 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 基本思路 栈1: 用于入队列存储 栈2: 出队列时将栈1的数据依次出栈,并入栈到栈2中 栈2出栈即栈1的底部数据即队列要出的数据。 注意: 栈2为空才能补充栈1的数据,否则会打乱当前的顺序。 代码 {代码...}

【剑指offer】5.二叉树的镜像和打印

2019-01-14
阅读 2 分钟
2.2k
二叉树简介 基本结构: {代码...} 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 题目1 二叉树的镜像 1....

【剑指offer】4.二叉树的遍历和重建

2019-01-13
阅读 2 分钟
1.7k
二叉树简介 基本结构: {代码...} 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 题目1 二叉树遍历 1.1 ...

【剑指offer】3.从尾到头打印链表

2019-01-10
阅读 3 分钟
1.6k
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 分析 要了解链表的数据结构: val属性存储当前的值,next属性存储下一个节点的引用。 要遍历链表就是不断找到当前节点的next节点,当next节点是null时,说明是最后一个节点,停止遍历。 最后别忘了,从尾到头遍历链表,不要忘了将你的结果进行翻转。 ...

【前端面试】原型和原型链

2019-01-08
阅读 5 分钟
4.2k
1.题目 如何准确判断一个变量是数组 写一个原型链继承的例子 继承实现的其他方式 es6 实现继承的底层原理是什么 描述new一个对象的过程 zepto及其他源码中如何使用原型链 2.知识点 2.1 构造函数 特点:以大写字母开头 {代码...} 扩展 var o = {} 是 var o = new Object() 的语法糖 var a = [] 是 var a = new Array() 的...

【剑指offer】2.替换空格

2019-01-07
阅读 1 分钟
2.9k
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

【剑指offer】1.二维数组查找

2019-01-07
阅读 2 分钟
2.1k
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

【前端面试】变量和类型计算

2019-01-03
阅读 4 分钟
2.4k
1.题目 1.JS使用typeof能得到哪些类型 === 和 == 的选择 JS中有哪些内置函数 JS变量按存储方式分为哪些类型,并描述其特点 如何理解JSON 2.知识点 2.1 值类型和引用类型 值类型(boolean,string,number,null,undefined) {代码...} 引用类型(对象,数组,函数) {代码...} 值类型直接把值存储在堆中,把a赋值给b在内存...