自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

酸奶的博客

美少女的知识清单

  • 博客(49)
  • 收藏
  • 关注

原创 [前端学习笔记]JS高级语法+ES6

文章目录一、面向对象1. 编程思想2. ES6类和对象3. 类的继承4. 面向对象案例:Tab对象二、构造函数和原型1. 构造函数2. 实例成员与静态成员3. 原型1)构造函数存在的问题2)原型3)对象原型4)constructor属性5)原型链6)原型对象的应用4. 继承5. 类的本质:function三、ES5新增方法1. 数组方法1)forEach遍历数组2)filter筛选数组3)some查找数组2. 字符串方法1)trim() 去除字符串两边空白3. 对象方法1)Object.defineProp

2022-04-30 10:44:01 695

原创 LeetCode112:路径总和

题目给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true解释:等于目标和的根节点到叶节点路径如上图所示。输入:root = [], targetSum = 0输出:f

2022-04-29 22:41:14 330

原创 LeetCode110:平衡二叉树

题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。输入:root = [3,9,20,null,null,15,7]输出:true输入:root = [1,2,2,3,3,null,null,4,4]输出:false输入:root = []输出:true分析1)已知平衡二叉树指每个节点的左右子树高度差的绝对值不超过1。2)区分树的深度与高度的含义:深度指从上向下的最大节点数,需

2022-04-29 16:44:42 578

原创 LeetCode101:对称二叉树

问题给你一个二叉树的根节点 root , 检查它是否轴对称。输入:root = [1,2,2,3,4,4,3]输出:true输入:root = [1,2,2,null,3,null,3]输出:false分析1)判断一个二叉树是否轴对称。将这棵二叉树复制一份放在右边,问题转化为是否镜像。2)除根结点外,其他对应节点的比较均为第一棵树的左节点和第二棵树的右节点比较。3)利用递归的思想, 递归的比较t1.right与t2.left、t1.left与t2.right。判断终止条件为两棵树的当

2022-04-24 22:51:21 296

原创 LeetCode94: 二叉树的中序遍历

问题给定一个二叉树的根节点 root ,返回它的中序遍历。输入:root = [1,null,2,3]输出:[1,3,2]输入:root = []输出:[]输入:root = [1]输出:[1]分析1)二叉树的中序遍历,即按照左子树、根节点、右子树的方式遍历树。2)左子树或右子树可以按照同样的方式遍历,直到遍历完整棵树,具有递归的特点。3)定义中序遍历函数。先遍历左子树,再将此时的root节点放入数组,最后遍历右子树。递归结束条件为当前节点为空节点。代码/** * @par

2022-04-24 18:17:17 625

原创 [前端学习笔记]JavaScript数组方法整理

本文以思维导图的方式总结常用的JS数组方法。文章目录1. 数组转化为字符串【原数组不变】2. 添加/删除元素【原数组改变】3. 数组排序【原数组改变】4. 反转数组【原数组改变】5. 查找元素【原数组不变】6. 过滤器【原数组不变】7. 数组映射【原数组不变】8. 拼接数组【原数组不变】9. 截取数组【原数组不变】10. 强大的splice【原数组改变】11. 数组循环【原数组不变】12. 累加器【原数组不变】1. 数组转化为字符串【原数组不变】2. 添加/删除元素【原数组改变】3. 数组排序【

2022-04-23 15:59:42 1116

原创 LeetCode70:爬楼梯

问题假设你正在爬楼梯。需要 n 阶你才能到达楼顶。1 <= n <= 45每次可以爬 1 或 2 个台阶。有多少种不同的方法可以爬到楼顶呢?输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶分析经典动态规划题目。1)寻找规律,写出递推公式。每次可以爬1或2个台阶,则1层只有一种方案;2

2022-04-20 21:38:46 356

原创 LeetCode67:二进制求和

问题给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。输入: a = "11", b = "1"输出: "100"输入: a = "1010", b = "1011"输出: "10101"分析动手计算总结规律。1)首先,需要将短的一个在前面进行补0,使两个数组长度相同。2)从后往前逐位相加。其中,返回值头部为(sum+jw)%2,进位为(sum+jw)/2。3)最后,当jw不为0时,返回值头部要追加进位。代码/** * @param

2022-04-19 23:30:11 214

原创 LeetCode53:最大子数组和

题目:最大子数组和给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。输入:nums = [1]输出:1输入:nums = [5,4,-1,7,8]输出:23分析【贪心算法】局部最优推全局最优。1)首先,我们的全局目标是得到最大和,局部目标是找到一个子数组和最大。

2022-04-19 18:16:40 267

原创 LeetCode28:实现strStr()

题目:实现 strStr() 函数给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。输入:haystack = "hello", needle = "ll"输出:2输入:haystack = "aaaaa", needle = "bb

2022-04-19 14:25:33 388

原创 LeetCode21:合并两个有序链表

题目将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]输入:l1 = [], l2 = []输出:[]输入:l1 = [], l2 = [0]输出:[0]分析方法一:迭代创建一个虚拟头节点dummy,移动指针p指向它(真正的头节点为dummy.next)判断list1和list2是否为空,如果任意一个为空,则返回另外一个(已包含全为空情况)循环

2022-04-14 17:53:23 142

原创 LeetCode20:有效的括号

题目给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:1)左括号必须用相同类型的右括号闭合。2)左括号必须以正确的顺序闭合。输入:s = "()[]{}"输出:true输入:s = "{[]}"输出:true输入:s = "([)]"输出:false分析首先将字符串转化为数组创建一个新数组newArr【利用数组模拟栈的思想】循环判断数组当前项:如果匹配到右括号且与newArr中的左括号匹配则newArr

2022-04-14 11:00:48 502

原创 LeetCode14:最长公共前缀

题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。输入:strs = ["flower","flow","flight"]输出:"fl"输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。分析首先找出strs数组中最短的一项以最短的一项为基准,循环判断剩余其他项的对应位置字符是否与基准的相同。如果有任意一个不同了,直接返回结果;如果全部项对应位置都与之相同,则需要给结果添加当前位置的字符。其中

2022-04-14 09:49:54 87

原创 [前端学习笔记]Node.js基础知识整理(包含npm、express、cors、mysql)

文章目录一、什么是Node.js1. Node.js运行环境2. Node.js可以做什么二、Node.js内置API模块1. fs模块:读写操作文件2. path模块:处理路径3. http模块:创建web服务器三、模块化与npm1. 模块化2. npm四、Node.js第三方API模块1. express2. CORS3. mysql五、Web开发模式六、身份认证1. Session认证机制2. JWT认证机制一、什么是Node.jsNode.js是一个基于"Chrome V8"JS解析引擎的JS运

2022-04-01 23:30:45 2004

原创 [前端学习笔记] Ajax基础知识整理(包含Postman、Axios、JSONP)

目录一、客户端与服务器1. 基本概念2. 客户端与服务器通信过程:请求-处理-响应3. 资源请求:XMLHttpRequest对象二、Ajax概念及应用场景1. Ajax(Asynchronous JS And XML)2. Ajax应用三、jQuery封装请求方法四、接口测试工具Postman1. 数据接口2. 接口文档3. 接口测试工具【以Postman为例】五、表单form1. 表单作用2. 表单组成3. 表单属性:规定如何把采集到的数据发送到服务器4. Ajax提交表单数据六、XMLHttpRequ

2022-03-24 17:45:49 3289 1

原创 防抖与节流对比

一、防抖(debounce)1. 基本概念高频事件触发,延迟n秒后回调函数执行一次,在n秒内事件再次被触发则重新计时。借助setTimeout和clearTimeout实现,只有最后一次触发生效。2. 应用1)输入框查询请求,连续输入一串字符后才执行查询请求。有效减少请求次数,节约请求资源。3. 示例// 计时器var timer = false;window.onscroll = function(){ clearTimeout(timer); timer = set

2022-03-23 23:21:45 690 1

原创 HTTP请求与响应(包含响应状态码、HTTPS)

一、通信1. 通信是信息的传递和交换。2. 通信三要素通信主体、通信内容、通信方式。3. 通信协议通信协议是通信双方完成通信所事先约定好的、必修遵守的通信规则。通信双方采用规定好的格式发送和接收消息。二、HTTP1. HTTP(HyperText Transfer Protocol)超文本传输协议。客户端与服务器之间网页内容(超文本)的传输协议。采用【请求-响应】的交互模式。2. HTTP发展版本产生时间内容HTTP/0.91991年不涉及数据包传输;规定客

2022-03-23 18:16:38 8683

原创 [前端学习笔记]模版引擎art-template

1. 模版引擎根据程序员指定的模版结构和数据,自动生成一个完整的HTML页面。原理:利用正则表达式对字符串进行替换。2. 模版引擎优点减少了字符串的拼接操作代码结构更清晰代码更易于阅读和维护3. art-template一个简约超快的模版引擎。官网:http://aui.github.io/art-template/zh-cn/index.html4. art-template使用步骤1)导入art-template<script src="./lib/template-

2022-03-23 12:11:23 1734

原创 Git版本控制基本使用知识整理

一、版本控制1. 版本控制用于管理多人协同开发项目的技术。2. 版本控制软件/系统用来记录文件变化,便于查询特定版本修订情况的系统。3. 版本控制分类本地版本控制:使用软件记录文件不同版本。【优点】提高工作效率,降低手工管理的出错率。【缺点】单机运行,不支持多人协作开发;若版本数据库故障所有历史更新记录丢失。集中版本控制(例如SVN):基于【客户端-服务器】的运行模式,服务器保存文件所有更新记录,客户端只保留最新的文件版本。【优点】联网运行,支持多人协作开发。【缺点】不支持离线提

2022-03-21 18:16:06 1664

原创 [前端学习笔记] Echarts基础知识整理

1. 数据可视化可以把数据从冰冷的数字转换为图形,揭示蕴含在数据中的规律和道理。目的是借助于图形化手段,清晰有效的传达与沟通信息。2. 常见的数据可视化库**D3.js**(目前Web端评价最高的JS可视化工具库,入手难)**ECharts.js** (百度出品的一个开源JS数据可视化库)**Highcharts.js** (国外的数据可视化库,非商用免费,被许多国外公司所用)**AntV** (蚂蚁金服全新一代数据可视化解决方案)

2022-03-15 15:59:53 2118

原创 [前端学习笔记] jQuery基础知识整理

一、jQuery基本概念1. 什么是jQueryjQuery是一个快速简洁的JS库,封装了JS常用的功能代码,优化了DOM操作、事件处理、动画设计、Ajax交互等。我们可以快速查询使用里面的功能函数。补充:常见的JS库有jQuery\Prototype\YUI\Dojo\Ext JS\移动端的zepto。这些库都是对原生JS的封装,内部是用JS实现的。2. jQuery的优点轻量级。核心文件几十kb,不会影响页面加载速度。跨浏览器兼容。基本兼容了现在主流的浏览器。

2022-02-12 14:11:33 603

原创 [前端学习笔记]JavaScript 常见网页特效和移动端补充知识

一、PC端网页特效1.offset系列1)offset(偏移量):动态得到该元素的位置、偏移、大小等。【含边框】2)常用属性

2022-01-22 17:09:53 730

原创 [前端学习笔记]JavaScript APIs(DOM和BOM)

一、Web API 1. APIAPI(Application Programming Interface,应用程序编程接口):是一些预定义的接口(如函数、HTTP接口)。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而无需访问源码或理解内部工作机制的细节。简单理解为:API是给程序员提供的一种工具,以便能更轻松的实现想要完成的功能。

2022-01-17 22:56:54 692

原创 [前端学习笔记]JavaScript对象

文章目录一、JS对象1. 创建对象(三种方式)2. 变量与属性、函数与方法的区分3. 遍历对象4. 内置对象二、数据类型分类一、JS对象1. 创建对象(三种方式)// 1)利用对象字面量{} // var obj = {}; 空对象 var obj = { // 属性或方法"键值对"形式,用"逗号"隔开 uname: '张三疯', age: 18, sex: '男',

2021-10-10 16:46:36 133

原创 [前端学习笔记]JavaScript基础知识

一、JS三种书写位置1. 行内式直接写到元素的内部。```html<input type="button" value="唐伯虎" onclick="alert('秋香姐')">```2. 内嵌式写在script标签内部。```html<script> alert('沙漠骆驼');</script>```3. 外部式通过script标签引入外部js文件。

2021-10-10 13:24:13 182

原创 [前端学习笔记] CSS移动端响应式布局

一、响应式布局响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。传统的开发方式是PC端开发一套,手机端再开发一套,而使用响应式布局只要开发一套就够,能够根据不同的屏幕尺寸展示不同的样式。响应式布局原理是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备。屏幕大致可以分为以下四类:超小屏幕(手机):小于768px小屏设备(平板):大于等于768

2021-10-05 09:44:36 720

原创 [前端学习笔记] CSS移动端rem布局

一、rem布局技术方案1: rem + 媒体查询 + less技术方案2: rem + flexible.js【推荐】二、rem是什么rem(root em)是一个单位。它可以实现:1)页面布局文字随屏幕大小变化而变化2)屏幕变化时,宽度和高度可以等比例缩放rem的优点就是可以通过修改html文字大小来改变页面中元素的大小,可以整体控制。<style> html { /* 设置html文字大小 */ font-siz

2021-10-04 21:54:37 832

原创 [前端学习笔记] CSS移动端flex弹性布局

一、什么是flex弹性布局flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。为盒子模型提供更大的灵活性,任何一个容器都可以指定flex布局。采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main star

2021-10-04 20:46:26 161

原创 [前端学习笔记] CSS移动端流式布局

一、移动端基础知识浏览器现状1)PC端常见浏览器:360浏览器、谷歌浏览器、火狐浏览器、IE浏览器、QQ浏览器、百度浏览器…2)移动端常见浏览器:UC浏览器、QQ浏览器、欧朋浏览器、百度手机浏览器、360安全浏览器、谷歌浏览器…国内的手机浏览器都是根据Webkit修改的内核,所以只需要处理Webkit内核浏览器即可。手机屏幕现状移动端碎片化比较严重,设备屏幕尺寸种类、分辨率种类繁多。开发时无需关注分辨率,使用的尺寸单位是px,常见移动端屏幕尺寸如下(物理像素比的含义在下方第5点进行解释):

2021-10-04 17:11:43 354

原创 [前端学习笔记] CSS基础笔记03

一、精灵图为了有效的减少服务器接收和发送请求的次数,把很多的小图片合并到一张较大的图片里,所以在首次加载页面的时候,就不用加载过多的小图片,只需要加载出来将小图片合并起来的那一张大图片也就是精灵图即可,提高页面的加载速度。<!-- 1、设置盒子的高度和宽度 2、通过 background-position 移动精灵图x、y的位置,来显示图片的部分内容 3、背景图片默认左上角对齐的,要往上/左移动图片,是负的。--><style&

2021-10-04 14:09:53 115

原创 [前端学习笔记] CSS基础笔记02

一、CSS三特性CSS三大特性:层叠性、继承性、优先级。层叠性相同的选择器下样式冲突:就近原则覆盖。样式不冲突:不影响。<style> div { color: red; font-size: 12px; } div { /* 文本颜色覆盖为粉色,字体大小不影响 */ color: pink; }</style&g

2021-10-02 22:00:18 95

原创 [前端学习笔记] CSS基础笔记01

一、引入样式表的三种方式 1. 行内样式表 在指定标签中直接加入style属性,适合于修改简单样式。```html <!-- 在双引号里写样式!! --><p style="color: pink; font-size: 20px;">给我一个粉红的回忆</p>``` 2. 内部样式表在html页面内部写样式,但是是单独写到style标签内部。理论上可以放在HTML文档的任何地方,但一般会放在head标签内。 【优点】可以方便控制当前整个页面中的元素样式设置;结构代码清晰。 【缺点

2021-09-30 20:29:52 133

原创 Latex入门教程用法笔记(结尾附完整示例)

以下是我在Latex使用过程中用到的一些语法,可能不是很全面,但是足够我使用了。有说错的地方还请大家谅解,在评论区多多指正~下面分为几个部分说明(注意导入所需要的包!可参照文章末尾完整示例里的用法)文章目录一、文章基本信息二、文章结构三、字体样式四、列表五、数学公式六、图片七、表格八、代码九、参考文献十、其他十一、学习资料十二、完整示例一、文章基本信息文章标题 \title{ }\title{这是标题}需要在\begin{document}里面写\maketitle才能显示标题。文章作者

2021-09-13 10:57:25 3491 1

原创 [前端学习笔记]HTML基础知识整理

HTML1. HTML简介全称Hyper Text Markup Language超文本标记语言(超文本:文字、图片、音频、视频、动画等)1)HTML5:跨平台,世界知名浏览器对HTML5支持2)W3C万维网联盟:国际中立性技术标准机构。W3C标准包括:3)HTML基本结构<!--DOCTYPE文档类型声明标签:告诉浏览器使用什么规范,默认是html--><!DOCTYPE html><!--lang:en英文网页,zh-CN中文网页--><ht

2021-05-11 21:38:30 385 3

原创 驾驶员模型分类及方法综述归纳

最近看了很多驾驶员模型的综述类的文献内容,对驾驶员模型的种类和方法进行了简要归纳,制作了上图的思维导图,方便自己记忆。

2021-03-29 20:42:26 3043 1

原创 CSDN-markdown编辑器用法

Markdown语法没有统一的标准,不同工具或平台采用的标准不同,有些语法规则和功能有差异,而且一段时间不用markdown可能会忘记用法。所以本文将CSDN官方的介绍添加一些注释来方便自己以后查看~有需要的小伙伴可以收藏一下~@[TOC](这里写自定义目录标题)这里写自定义目录标题一、合理的创建标题,有助于目录的生成二、功能快捷键三、如何改变文本的样式四、插入链接与图片五、如何插入一段漂亮的代码片六、生成一个适合你的列表七、创建一个表格1)设定内容居中、居左、居右2)SmartyPants(用反引号

2021-03-29 20:35:09 70

原创 JavaSE的String类

目录String类的两种实例化方式String采用共享设计模式字符与字符串的相互转换(**)字节与字符串的相互转换字符串相等比较(比较内容,而不是地址)字符串比较字符串查找(**)字符串替换字符串拆分字符串截取String类的其他方法StringBuffer \  StringBuilder  String类的两种实例化方式1.直接赋...

2018-11-09 16:06:00 158

原创 Linux常用工具及命令

目录vim:文本编辑器gcc:编译器       makefile:不普通的普通文件gdb:调试器yum:软件包管理vim:文本编辑器vim是随Linux和UNIX系统分发的vi编辑器的gg改进版本,具有很高的可配置性和效率,包含分屏编辑、颜色格式和突出显示编辑文本等功能。vim 有12种模式,每种模式有不同的功能,做不同的操作。普通模式、插入模式、底行模式、视图模...

2018-10-27 09:16:20 4794

原创 Linux基本操作命令 + Linux权限管理

目录目录的操作命令:文件的操作命令:压缩操作的命令:查找匹配操作命令:其他操作命令:linux权限管理:文件权限管理目录的操作命令:linux 下的目录结构是一个树形结构。ls 列出目录下的内容(当前目录)linux每个用户登陆成功后默认当前所在目录为家目录。. 代表当前目录.. 代表当前目录的上一层目录-a 查看所有文件,不忽略以 . 开头的文...

2018-10-24 21:58:58 874

原创 函数的调用过程(函数栈帧)

函数栈帧:函数的调用过程中要为函数开辟栈空间,用于本次函数的调用中临时变量的保存、现场保护,这块栈空间称为函数栈帧。 -栈帧中保存了该函数的返回地址和局部变量。 调用main函数,为main函数分配栈帧空间: esp寄存器存放了指向函数栈帧栈顶的地址; ebp寄存器存放了指向函数栈帧栈底的地址。-我们对应汇编代码来探究函数的调用过程:...

2018-06-03 22:15:33 453

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除