题目描述

给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 注意空字符串可被认为是有效字符串。

前言

我们生活中排序无处不在,比如考试结束后,老师需要对学生成绩由高到低进行排序,还有我们排名单时有时候也按照字典序排序等等,下面就介绍几种常用的排序算法及js实现。

算法题

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

前言

想要做一个技术人,数据结构和算法都是必须的,在大学中,最让我头疼的也是这两门课,总觉得脑豁疼,毕业工作后一直想要找时间学习,但是奈何在前公司总是搬砖,做一些简单的工作,现离职后开始找工作,终于抽出时间开始学习数据结构和算法。数据结构和算法对我来说是难以翻越两座大山,但是做人要不断挑战自己,这一篇博客主要是记录一下学习数据结构的成果。

数据结构按可以分为逻辑结构和物理结构。把数据结构比作人的话,物理结构就是看得见,摸得着的人体,逻辑结构就是人的精神和思想。

物理结构分为顺序存储结构和链式存储结构。顺序存储结构有数组,链式存储结构有链表。

逻辑结构分为线性结构和非线性结构。线性结构主要有顺序表,栈,队列。非线性结构主要有树,图。

前言

JavaScript(通常简写为JS)是一种轻量的、解释性的、面向对象的头等函数语言,其最广为人知的应用是作为网页的脚本语言,但同时它也在很多非浏览器环境下使用。JS是一种动态的基于原型和多范式的脚本语言,支持面向对象、命令式和函数式的编程风格。 —MND

树数据结构的介绍

数据结构可以分为顺序数据结构和非顺序结构。顺序数据结构是指把数据元素放在地址连续的存储单元里。非顺序结构可以把数据元素任意放在连续或者不连续的存储单元里。

树是一种非顺序数据结构。族谱,公司里的组织结构都可以看成是树模型。

树结构是包含一个根节点,还有内部节点,叶子节点。根节点是位于树的顶部。叶子节点是没有后代的节点。内部节点是除了根节点和叶子节点外的所有节点。一个节点可以有祖先和后代。根节点没有祖先。

节点的深度是节点的祖先节点数。

树的高度是所有节点深度中的最大的深度。

树可以分层级,根节点在第零层,它的子节点是第一层,依次类推。

深度优先遍历

广度优先遍历

js实现两种方式的遍历

前言

单页应用 vs 多页应用

以我的博客为例,很多网站会有这样的布局,头部会有一个导航栏,每次点击页面会切换。

如果是多页应用MPA(Mutiple Page Application)的话,就是每一个导航是一个html,比如我的博客,导航里有5项,那么就有5个html,每次点击,都进行了html切换,每次都要加载新的html。

如果是单页应用,就只有一个html,没有导航切换的时候只是切换html页面内容,不会切换html。

一、前言

可能有人会和以前的我一样,觉得缓存不是后台设置的吗,感觉和前端人员没有太大联系,平时关于缓存最常做的就是在浏览器Ctrl+Shit+Delete清空缓存。

web缓存可以大致分为三类:

1. 浏览器缓存
2. 代理缓存
3. 网关缓存

我们这篇文章主要讲的是浏览器缓存,浏览器主要是通过http/https和服务器进行通信,所以浏览器缓存我们也可以说是HTTP缓存。