想普及一下树的知识,个人认为树是算法必须要牢牢掌握的一部分。

一般树的逻辑可以说是灰常滴简单了:

  • 除根节点之外的每个节点只有一个父节点,根节点没有父节点。

  • 除叶节点之外所有节点都有一个或多个子节点,叶节点没有子节点。

父节点和子节点之间是用指针连接,所以树会涉及到大量的指针,因此与树有关的面试题都不太容易,但是越不容易的知识点,我们就越要攻克。

剑指Offer-Javascript版-重建二叉树

对应LeetCode上的题目:面试题07. 重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。

剑指Offer-Javascript版-从尾到头打印链表

对应LeetCode上的题目:面试题06. 从尾到头打印链表

题目描述:输入一个链表的头节点,从尾到头反过来打印出每个节点的值,链表节点定义如下:

1
2
3
4
function ListNode(val) {
this.val = val;
this.next = null;
}

剑指Offer-Javascript版-替换空格

对应LeetCode上的题目:面试题05. 替换空格

题目描述:请实现一个函数,把字符串 s 中的每个空格替换成”%20”。

例:

1
2
输入:s = "We are happy."
输出:"We%20are%20happy."

剑指Offer-Javascript版-二维数组中的查找

对应LeetCode上的题目:面试题04. 二维数组中的查找

题目描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

强缓存和协商缓存

之前一直对浏览器缓存只能描述一个大概,深层次的原理不能描述上来;为了泄恨,查阅一些资料最终对其有了一个更深入的理解

本文主要讲解浏览器端的缓存,缓存的作用是不言而喻的,能够极大的改善网页性能,提高用户体验。

如何理解Javascript中的this

关于this指向的文章,网上一搜一大把,可是很多文章都是复制粘贴的水文,是否真正的了解JavaScript中的this,那就未必。那么我们应该如何简单轻松的理解this呢?

要简单轻松的理解this,就要记住一句话:this的指向并不是在函数定义的时候确定的,而是在其被调用的时候确定的。也就是说,this是在运行的时候基于函数的执行环境绑定的。

this的指向可以分为5大类:

剑指Offer-Javascript版-找出数组中的数字

对应LeetCode上的题目:面试题03. 数组中重复的数字

题目描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×