【剑指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() 的...

es6类和继承的实现原理

2019-01-08
阅读 4 分钟
4.7k
在阅读文章之前,您至少需要对JavaScript原型继承有一定了解,如果觉得有所欠缺,可以先了解下我这篇文章:[链接] 1.es6 class 使用 javascript使用的是原型式继承,我们可以通过原型的特性实现类的继承,es6为我们提供了像面向对象继承一样的语法糖。 {代码...} 下面我们借助babel来探究es6类和继承的实现原理。 1.类的...

【剑指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在内存...

前端性能优化总结

2018-12-28
阅读 3 分钟
21.8k
1.原则 多使用内存,缓存或者其他方法 减少CPU计算,减少网络请求 减少IO操作(硬盘读写) 2.加载资源优化 静态资源的合并和压缩。 静态资源缓存(浏览器缓存策略)。 使用CDN让静态资源加载更快。 3. 渲染优化 CSS放head中,JS放body后 图片懒加载 减少DOM操作,对DOM操作做缓存 减少DOM操作,多个操作尽量合并在一起执...

Web运行环境总结

2018-12-22
阅读 2 分钟
2.8k
1. 页面加载过程 1.1 加载一个资源的过程 在浏览器地址栏输入URL 浏览器查看缓存(强缓存) 浏览器解析URL获取协议,主机,端口,path 浏览器组装一个HTTP(GET)请求报文 浏览器根据DNS服务器得要域名的IP地址 打开一个socket与目标IP地址,端口建立TCP链接 向这个IP的机器发送http/https请求 服务器收到处理并返回http请...

react中key的正确使用方式

2018-11-27
阅读 4 分钟
13.5k
在开发react程序时我们经常会遇到这样的警告,然后就会想到:哦!循环子组件忘记加key了~ 出于方便,有时候会不假思索的使用循环的索引作为key,但是这样真的好吗?什么样的值才是key的最佳选择? 为了弄明白,本文将从三个方面来分析"key": 1.为什么要使用key 2.使用index做key存在的问题 3.正确的选择key 1.为什么要...