题目描述
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 注意空字符串可被认为是有效字符串。
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
我们生活中排序无处不在,比如考试结束后,老师需要对学生成绩由高到低进行排序,还有我们排名单时有时候也按照字典序排序等等,下面就介绍几种常用的排序算法及js实现。
已知数据格式,实现一个函数 fn 找出链条中所有的父级id
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。
你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
已知如下数组:
1 | var arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; |
想要做一个技术人,数据结构和算法都是必须的,在大学中,最让我头疼的也是这两门课,总觉得脑豁疼,毕业工作后一直想要找时间学习,但是奈何在前公司总是搬砖,做一些简单的工作,现离职后开始找工作,终于抽出时间开始学习数据结构和算法。数据结构和算法对我来说是难以翻越两座大山,但是做人要不断挑战自己,这一篇博客主要是记录一下学习数据结构的成果。
数据结构按可以分为逻辑结构和物理结构。把数据结构比作人的话,物理结构就是看得见,摸得着的人体,逻辑结构就是人的精神和思想。
物理结构分为顺序存储结构和链式存储结构。顺序存储结构有数组,链式存储结构有链表。
逻辑结构分为线性结构和非线性结构。线性结构主要有顺序表,栈,队列。非线性结构主要有树,图。
JavaScript(通常简写为JS)是一种轻量的、解释性的、面向对象的头等函数语言,其最广为人知的应用是作为网页的脚本语言,但同时它也在很多非浏览器环境下使用。JS是一种动态的基于原型和多范式的脚本语言,支持面向对象、命令式和函数式的编程风格。 —MND
数据结构可以分为顺序数据结构和非顺序结构。顺序数据结构是指把数据元素放在地址连续的存储单元里。非顺序结构可以把数据元素任意放在连续或者不连续的存储单元里。
树是一种非顺序数据结构。族谱,公司里的组织结构都可以看成是树模型。
树结构是包含一个根节点,还有内部节点,叶子节点。根节点是位于树的顶部。叶子节点是没有后代的节点。内部节点是除了根节点和叶子节点外的所有节点。一个节点可以有祖先和后代。根节点没有祖先。
节点的深度是节点的祖先节点数。
树的高度是所有节点深度中的最大的深度。
树可以分层级,根节点在第零层,它的子节点是第一层,依次类推。
以我的博客为例,很多网站会有这样的布局,头部会有一个导航栏,每次点击页面会切换。
如果是多页应用MPA(Mutiple Page Application)的话,就是每一个导航是一个html,比如我的博客,导航里有5项,那么就有5个html,每次点击,都进行了html切换,每次都要加载新的html。
如果是单页应用,就只有一个html,没有导航切换的时候只是切换html页面内容,不会切换html。
可能有人会和以前的我一样,觉得缓存不是后台设置的吗,感觉和前端人员没有太大联系,平时关于缓存最常做的就是在浏览器Ctrl+Shit+Delete
清空缓存。
web缓存可以大致分为三类:
1. 浏览器缓存
2. 代理缓存
3. 网关缓存
我们这篇文章主要讲的是浏览器缓存,浏览器主要是通过http/https和服务器进行通信,所以浏览器缓存我们也可以说是HTTP缓存。