- 博客(25)
- 收藏
- 关注
原创 用两个栈来实现队列(JS解法)—— 高频面试算法题(字节跳动真题)
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。题目分析:我们都知道,栈是实行FILO(first in last out)而队列是实行FIFO(first in first out)机制的。那么要想用两个栈来实现队列的效果,其实非常简单。我们将数据依次先push进第一个栈中,然后再pop进第二个栈。再依次pop出第二个栈的数据,那这样第二个栈的出栈顺序就等于第一个栈的先进先出了。即实现了队列的操作。值得注意的是,第一个栈往第二个栈pop出数据时,要
2020-11-14 14:42:44
195
原创 删除链表的倒数第n个节点(JS解法) —— 高频面试算法题(美团真题)
题目描述:给定一个链表,删除链表的倒数第n个节点并返回链表的头指针。例如:给出的链表为:1->2->3->4->5, n= 2.删除了链表的倒数第n个节点之后,链表变为1->2->3->5.备注:题目保证n一定是有效的请给出请给出时间复杂度为 O(n)的算法实例输入:{1,2},2输出:{2}解题思路要想删除链表的倒数第N个节点,需要遍历链表得出长度。然后将第length-n的下一个节点指向下下个节点即可。我的解法functio
2020-11-13 16:46:13
164
原创 反转链表(JS解法)—— 高频面试算法题(字节跳动真题)
题目描述:输入一个链表,反转链表后,输出新链表的表头。解题思路:设置一个current值等于原链表的表头,preview值记录前一个节点。循环遍历原链表,用temp值更新current值,知道cur.next = null。返回preview值,因为pre是原链表的最后一个节点,就是反转后的链表的表头,输出即可。说明:因为题目只要求返回表头,所以实际上并没有真正意义上进行真正的反转链表的操作。假如是给定原链表的表头,返回整个反转完的链表,则需要遍历输出每一个值进入一个空数组,再返回空数组的.
2020-11-12 14:55:56
307
原创 判断给定的链表中是否有环(JS解法) —— 高频面试算法题(字节跳动真题)
题目描述:判断给定的链表中是否有环扩展:你能给出空间复杂度O(1)的解法么?解题思路:判定链表中是否有环,关键在于这个链表是不是可以一直循环走下去。那么可以设置两个指针,快指针和慢指针,一个走两步,一个走一步。如果链表中有环,那么它们迟早是会相遇的,而且复杂度恒定为O(1)。如果链表为null,单节点,双节点,都不会有环,直接返回false就行了。我的解法:/* * function ListNode(x){ * this.val = x; * this.next = n
2020-11-12 14:27:03
972
1
原创 二分查找(JS解法)——高频面试算法题(百度真题)
题目描述:请实现有重复数字的有序数组的二分查找。输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。示例:输入5,4,[1,2,4,4,5]返回值3说明输出位置从1开始计算我个人解法/** * 二分查找 * @param n int整型 数组长度 * @param v int整型 查找值 * @param a int整型一维数组 有序数组 * @return int整型 */function upper_bound_( n , v ,
2020-11-11 23:53:21
324
原创 JavaScript基本包装类型
基本包装类型基本包装类型:把基本数据类型包装成复杂类型为了方便操作基本数据类型,JavaScript还提供了三个特殊的引用类型:String/Number/Boolean// 下面代码的问题?// s1是基本类型,基本类型是没有方法的var s1 = 'zhangsan';var s2 = s1.substring(5);// 当调用s1.substring(5)的时候,先把s1包装成String类型的临时对象,再调用substring方法,最后销毁临时对象, 相当于:var s1 = n
2020-10-30 13:29:25
118
原创 JavaScript内置对象介绍(重点介绍Math(),Date(),Array()以及案例应用)
内置对象JavaScript中的对象分为3种:内置对象、浏览器对象、自定义对象JavaScript 提供多个内置对象:Math Array Number String Boolean…对象只是带有属性和方法的特殊数据类型。学习一个内置对象的使用,只要学会其常用的成员的使用(通过查文档学习)可以通过MDN/W3C来查询内置对象的方法很多,我们只需要知道内置对象提供的常用方法,使用的时候查询文档。MDNMozilla 开发者网络(MDN)提供有关开放网络技术(Open Web)的信息,包括 HT
2020-10-30 11:58:03
297
原创 JavaScript中真值假值(布尔值)和相等操作符(“==”和“===”)中易错误区
JS中的true和false判定在JavaScript中,true和false有些复杂。在大多数编程语言中,布尔值true和flase仅仅表示true/false,然而,在JS中,如"Jeffery"这样的字符串值,也可以被看作为true。下面的表格能够帮助我们更好的理解true和false在JS中是如何转换的。数值类型转换成的布尔值undefinedfalsenullfalsebooleantrue/false,和其它语言一样number+0、-0和Na
2020-10-30 11:23:44
332
原创 CSS vertical-align 属性应用
vertical-align 属性CSS 的 vertical-align 属性使用场景: 经常用于设置图片或者表单(行内块元素)和文字垂直对齐。官方解释: 用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效。语法:vertical-align : baseline | top | middle | bottom图片、表单都属于行内块元素,默认的 vertical-align 是基线对齐。此时可以给图片、表单这些行内块元素的 vertical-align 属性设置为
2020-10-30 10:40:23
102
原创 CSS 用户界面样式之鼠标样式
什么是界面样式?所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。更改用户的鼠标样式表单轮廓防止表单域拖拽鼠标样式 cursorli {cursor: pointer; }设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。轮廓线 outline给表单添加 outline: 0; 或者 outline: none; 样式之后,就可以去掉默认的蓝色边框。input {outline: none; }防止拖拽文本域 resize实际开发中,我们文本域右
2020-10-29 16:17:19
194
原创 CSS高级技巧之精灵图,字体图标(CSS Sprites, iconfont)
为什么需要精灵图一个网页中往往会应用很多小的背景图像作为修饰,当网页中的图像过多时,服务器就会频繁地接收和发送请求图片,造成服务器请求压力过大,这将大大降低页面的加载速度。因此,为了有效地减少服务器接收和发送请求的次数,提高页面的加载速度,出现了 CSS 精灵技术(也称 CSS Sprites)。核心原理:将网页中的一些小背景图像整合到一张大图中 ,这样服务器只需要一次请求就可以了。使用精灵图核心:精灵技术主要针对于背景图片使用。就是把多个小背景图片整合到一张大图片中。这个大图片也称为 spr
2020-10-29 16:13:31
537
原创 CSS重点之定位布局
定位(position)为什么要用定位?提问: 以下情况使用标准流或者浮动能实现吗?某个元素可以自由的在一个盒子内移动位置,并且压住其他盒子.当我们滚动窗口的时候,盒子是固定屏幕某个位置的。以上效果,标准流或浮动都无法快速实现,此时需要定位来实现。所以:3. 浮动可以让多个块级盒子一行没有缝隙排列显示, 经常用于横向排列盒子。4. 定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中某个位置,并且可以压住其他盒子。定位组成定位:将盒子定在某一个位置,所以定位也是在摆放盒子, 按
2020-10-29 15:56:55
153
原创 CSS盒子模型之浮动布局
浮动(float)传统网页布局的三种方式普通流(normal flow)浮动定位普通流(normal flow)这个单词很多人翻译为 文档流 , 字面翻译 普通流 或者标准流都可以。前面我们说过,网页布局的核心,就是用CSS来摆放盒子位置。如何把盒子摆放到合适的位置?CSS的定位机制有3种:普通流(标准流)、浮动和定位。html语言当中另外一个相当重要的概念----------标准流!或者普通流。普通流实际上就是一个网页内标签元素正常从上到下,从左到右排列顺序的意思,比如块级元素会独占
2020-10-29 14:39:32
1319
原创 CSS重点之盒子模型(重中之重)
其实,CSS就三个大模块: 盒子模型 、 浮动 、 定位,其余的都是细节。要求这三部分,无论如何也要学的非常精通。所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。看透网页布局的本质: 把网页元素比如文字图片等等,放入盒子里面,然后利用CSS摆放盒子的过程,就是网页布局。CSS 其实没有太多逻辑可言 , 类似我们小时候玩的积木,我们可以自由的,随意的摆放出我们想要的效
2020-10-29 14:10:25
167
原创 CSS 三大特性(层叠性,继承性,优先级)
CSS层叠性所谓层叠性是指多种CSS样式的叠加。是浏览器处理冲突的一个能力,如果一个属性通过两个相同选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉比如先给某个标签指定了内部文字颜色为红色,接着又指定了颜色为蓝色,此时出现一个标签指定了相同样式不同值的情况,这就是样式冲突。一般情况下,如果出现样式冲突,则会按照CSS书写的顺序,以最后的样式为准。样式冲突,遵循的原则是就近原则。 那个样式离着结构近,就执行那个样式。样式不冲突,不会层叠CSS继承性所谓继承性是指
2020-10-29 13:51:16
936
原创 CSS伪类选择器
伪类选择器伪类选择器用于向某些选择器添加特殊的效果。比如给链接添加特殊效果, 比如可以选择 第1个,第n个元素。为了和我们刚才学的类选择器相区别, 类选择器是一个点 比如 .demo {} 而我们的伪类 用 2个点 就是 冒号 比如 :link{}链接伪类选择器:link /* 未访问的链接 */:visited /* 已访问的链接 */:hover /* 鼠标移动到链接上 */:active /* 选定的链接 */a { /* a是标签选择器 所有的链接
2020-10-29 11:42:27
155
原创 CSS选择器
标签选择器(元素选择器、类型选择器)标签选择器是指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。其基本语法格式如下:标签名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; } 或者元素名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }标签选择器最大的优点是能快速为页面中同类型的标签统一样式,同时这也是他的缺点,不能设计差异化样式。类选择器类选择器使用“.”(英文点号)进行标识,后面紧跟类名,其基本语法格式如下:.类名{属性
2020-10-29 10:56:40
80
原创 CSS字体样式属性
font-size:字号大小font-size属性用于设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位。其中,相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使用较少。font-family:字体font-family属性用于设置字体。网页中常用的字体有宋体、微软雅黑、黑体等,例如将网页中所有段落文本的字体设置为微软雅黑,可以使用如下CSS样式代码:p{ font-family:“微软雅黑”;}可以同时指定多个字体,中间以逗号隔开,表示如果浏览器不支持第一个字体,则会尝试下
2020-10-29 10:45:26
703
原创 HTML5新特性介绍
常用新标签header:定义文档的页眉 头部nav:定义导航链接的部分footer:定义文档或节的页脚 底部article:定义文章。section:定义文档中的节(section、区段)aside:定义其所处内容之外的内容 侧边<header> 语义 :定义页面的头部 页眉</header><nav> 语义 :定义导航栏 </nav> <footer> 语义: 定义 页面底部 页脚</foo
2020-10-29 01:54:23
189
原创 HTML列表标签
什么是列表?把…制成表,以表显示。容器里面装载着文字或图表的一种形式,叫列表。列表最大的特点就是 整齐 、整洁、 有序。无序列表 ul (重点)无序列表的各个列表项之间没有顺序级别之分,是并列的。其基本语法格式如下:<ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> ......</ul><ul></ul>中只能
2020-10-28 21:53:46
160
原创 HTML路径
实际工作中,通常新建一个文件夹专门用于存放图像文件,这时再插入图像,就需要采用“路径”的方式来指定图像文件的位置。路径可以分为: 相对路径和绝对路径相对路径图像文件和HTML文件位于同一文件夹:只需输入图像文件的名称即可,如<img src="logo.gif" />。图像文件位于HTML文件的下一级文件夹:输入文件夹名和文件名,之间用“/”隔开,如<img src="img/img01/logo.gif" />。图像文件位于HTML文件
2020-10-28 21:47:22
359
原创 HTML表格标签
表格结构标签<thead></thead>:用于定义表格头部。内部必须拥有标签。一般是位于第一行。<tbody></tbody>:用于定义表格的主题,主要用于放数据本体。以上标签都是放在<table></table>标签中。合并单元格合并单元格的方式跨行合并:rowspan="合并单元格的个数“跨列合并:colspan="合并单元格的个数”合并单元格三部曲先确定是跨行还是跨列合并。找到目标单元格,写
2020-10-28 21:33:53
203
原创 HTML常用标签
超链接标签(重点)连接分类外部链接:例如 <a href = "http://www.baidu.com"> 百度</a>。内部链接: 网站内部页面之间的相互链接,直接链接内部页面名称即可,例如<a href = "index.html">首页</a>。空链接: 多用于待确定目标时,如:<a href = "#">首页</a>。下载链接:如果href里面地址是一个文件或者压缩包,会下载这个文件。网页元素链接:在网页中各种网
2020-10-28 21:24:49
96
1
原创 Python爬虫学习笔记2
urllib 基础1)爬取到内存中注:ignore可以规避解码细节问题防止报错。2)爬取到本地3)浏览器伪装利用浏览器标识来伪装成浏览器来突破反爬4)用户代理池用多个浏览器标识进行伪装若想设置每爬N次换一次代理:例如每爬五次2.如何批量爬取(并翻页)...
2020-09-13 15:31:30
104
原创 Python爬虫学习笔记
Python爬虫学习笔记1. 爬虫是互联网信息的自动化采集程序2. 正则表达式1)全局匹配函数格式 re.compile(正则表达式) .findall(源字符串)特殊匹配\n 匹配换行符\t 匹配制表符\w 匹配字母,数字下划线\W 匹配除了字母,数字下划线\d 匹配十进制数字\D 匹配除十进制数字\s 匹配空白字符\S 匹配除了空白字符[ awda] 原子表,匹配表内任意一个[^awda] 原子表,匹配除了表内
2020-09-13 13:02:13
71
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人