自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 LeetCode.19删除链表的倒数第N个节点(双指针,基本法)

给你一个链表,删除链表的倒数第 `n` 个结点,并且返回链表的头结点。

2023-11-29 12:54:41 423 2

原创 LeetCode.24两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

2023-11-28 15:25:15 1116 2

原创 掌握反转链表的艺术:LeetCode 206 深入解析与优化 - 双指针与递归方法精讲

给你单链表的头节点 `head` ,请你反转链表,并返回反转后的链表。双指针和递归解题!

2023-11-27 21:44:58 1052

原创 LeetCode.707设计链表(链表相关操作一篇就够了)

单链表相关操作,插入,删除等

2023-11-26 21:10:46 1373 4

原创 LeetCode.203移除链表元素(原链表操作、虚拟头结点)

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

2023-11-25 20:57:40 7789 4

原创 数组基础知识

数组是存放在连续内存空间上的相同类型数据的集合。数组可以方便的通过下标索引的方式获取到下标下对应的数据。数组下标都是从0开始的。数组内存空间的地址是连续的。

2023-11-24 22:45:45 689

原创 LeetCode.88合并两个有序数组

给你两个按 **非递减顺序** 排列的整数数组 `nums1` 和 `nums2`,另有两个整数 `m` 和 `n` ,分别表示 `nums1` 和 `nums2` 中的元素数目。请你 **合并** `nums2` 到 `nums1` 中,使合并后的数组同样按 **非递减顺序** 排列。**注意**:最终,合并后数组不应由函数返回,而是存储在数组 `nums1` 中。为了应对这种情况,`nums1` 的初始长度为 `m + n`,其中前 `m` 个元素表示应合并的元素,后 `n` 个元素为 `0`

2023-11-24 10:09:34 489 1

原创 LeetCode.283移动零(双指针)

给定一个数组 `nums`,编写一个函数将所有 `0` 移动到数组的末尾,同时保持非零元素的相对顺序。

2023-11-23 19:10:57 562

原创 LeetCode59.螺旋矩阵

我们要画每四条边,这四条边怎么画,每画一条边都要坚持一致的左闭右开,或者左开右闭的原则,这样这一圈才能按照统一的规则画下来。所有元素,且元素按顺时针顺序螺旋排列的。

2023-11-22 21:18:07 7775

原创 LeetCode209.长度最小的子数组(滑动窗口法、暴力法)

给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

2023-11-22 00:07:58 554 2

原创 LeetCode977.有序数组的平方(双指针法、暴力法、列表推导式)

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

2023-11-20 21:56:35 1542 1

原创 LeetCode26.删除有序数组中的重复项(双指针法)

将目前位置与前一个位置上的数进行对比,如果一样,就移动指针去下一个位置访问下一个元素。如果不一样,赋值给慢指针。慢指针只要目前为止被填充了新值,就再向后移动一位。** 删除重复出现的元素,使每个元素。,返回删除后数组的新长度。

2023-11-19 12:49:00 775 4

原创 LeetCode27.移除元素(暴力法、快慢指针法)

的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。问题描述:给你一个数组。python:快慢指针法。python:暴力法。

2023-11-19 12:16:26 604

原创 LeetCode704.二分查找及二分法

如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。​我们要在一组升序的数组找一个数的下标,那我们肯定是先拿中间的与他进行比较,比较大小的判断,其实就相当于是这个性质,且这个 性质满足二段性,将大于和小于我们要查找的值分为两段,而我们的查找结果就是。,因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件②二分查找涉及的很多的边界条件,逻辑比较简单,但就是写不好。python:(版本一)左闭右闭区间。

2023-11-18 22:32:43 611 2

原创 Vue学习笔记--第六、七章(尚硅谷学习视频总结)

VUE学习尚硅谷--路由、Vue UI组件库

2022-12-20 21:16:33 576 1

原创 Vue学习笔记--第四、五章(尚硅谷学习视频总结)

VUE学习之尚硅谷---插槽、vuex

2022-12-20 21:15:36 534

原创 Vue学习笔记--第三章(尚硅谷学习视频总结)

第三章-尚硅谷学习视频总结

2022-12-14 10:43:33 1343

原创 Vue学习笔记--第二章(尚硅谷学习视频总结)

Vue 组件

2022-12-08 23:46:44 455

原创 Vue学习笔记--第一章(尚硅谷学习视频总结)

Vue学习笔记--第一章(尚硅谷学习视频总结)

2022-12-08 16:25:36 1428

原创 Vue指令

标题一、v-text和v-html1)v-test:更新元素的textContent;<span v-text="msg"></span> //等同于<span>{{msg}} </span>;2)v-html:更新元素的innerHTML;会把标签名也带上。<div v-html="'<h1>Hello World</h1>'"></div>二、v-if和v-else和 v-else-if

2022-03-23 17:02:05 1309

原创 ES6扩展:Map数据结构

ES6扩展:Map数据结构一、Map 是什么键值对的集合 键->值,key->valueconst m = new Map();m.set('name', 'alex');m.set('age', 18);console.log(m);//Map(2) {'name' => 'alex', 'age' => 18}二、Map 和对象的区别1)对象一般用字符串当作键const obj = { name: 'alex', true: 'true',

2022-02-27 23:03:17 514

原创 ES6扩展:Set数据结构

ES6扩展:Set数据结构一、Set的定义数组:一系列有序的数据集合Set :一系列无序、没有重复值的数据集合const s = new Set();s.add(1); // Set(1) {1}s.add(2); //Set(2) {1, 2}s.add(1); //Set(2) {1, 2} //没有重复值Set 没有下标去标示每一个值,所以 Set 是无序的,也不能像数组那样通过下标去访问 Set 的成员二、Set 实例的方法1、add 添加某个值,返回 Se

2022-02-23 23:05:02 565

原创 ES6扩展:对象展开运算符

ES6扩展:对象展开运算符1、展开对象对象不能直接展开,必须在 {} 中展开const apple = { color: '红色', shape: '球形', taste: '甜'};console.log(...apple); //{color: '红色', shape: '球形', taste: '甜'} console.log({ ...apple } === apple); // false对象的展开:把属性罗列出来,用逗号分隔,放到一个 {} 中,构成新对象2、 合并

2022-02-22 22:46:21 4255

原创 ES6扩展:数组展开运算符、区分剩余参数和展开运算符、应用

ES6扩展:数组展开运算符、区分剩余参数和展开运算符、应用一、数组展开运算符的基本用法console.log(Math.min(...[3, 1, 2])); // 1相当于console.log(Math.min(3, 1, 2));二、区分剩余参数和展开运算符1、根本区别展开运算符[3,1,2]->3,1,2剩余参数3,1,2->[3,1,2]2、区分剩余参数和展开运算符剩余参数const add = (...args) => {console.

2022-02-21 22:47:39 577

原创 ES6扩展:剩余参数

标题一、剩余参数const add = (x, y, ...args) => { console.log(x, y, args);};add(); //undefined undefinedadd(1); //1 undefinedadd(1, 2); // 1 2add(1, 2, 3, 4, 5); //1 2 [3, 4, 5]剩余参数永远是个数组,即使没有值,也是空数组二、剩余参数的注意事项1、箭头函数的剩余参数:箭头函数的参数部分即使只有一个剩余参数,也不能省略

2022-02-21 22:47:22 504

原创 ES6入门:函数参数默认值

ES6入门:函数参数默认值1、函数参数默认值的基本用法const multiply = (x, y = 1) => x * y;console.log(multiply(2,2));console.log(multiply(2));2、函数参数默认值的注意事项1)默认值的生效条件不传参数,或者明确的传递 undefined 作为参数,只有这两种情况下,默认值才会生效const multiply = (x, y = 1) => x * y;console.log(multipl

2022-02-08 18:53:19 520

原创 ES6入门:方括号语法

ES6入门:方括号语法1、方括号语法的用法const prop = 'age';const person = {};//给person添加属性age//person.prop = 18; 错的 点语法不可用console.log(person); {prop: 18}person[prop] = 18; //{age: 18}方括号语法可以写在对象字面量中const person = { [prop]: 18};2、方括号中可以放什么const prop

2022-02-08 18:53:10 1133

原创 ES6入门:属性和方法的简洁表示法

ES6入门:属性和方法的简洁表示法一、对象字面量是什么生成对象可以实例化构造函数生成对象const person = new Object();person.age = 18;person.speak = function () {};但可以用对象字面量方法const person = { age: 18, speak: function () {}};二、属性的简洁表示法键名和变量或常量名一样的时候,可以只写一个const age = 18;const person

2022-01-28 22:45:53 714

原创 ES6入门:其它数据类型的解构赋值

ES6入门:其它数据类型的解构赋值一、字符串的解构赋值数组形式的解构赋值:字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。const [a, b, c, d, e] = 'hello';a // "h"b // "e"c // "l"d // "l"e // "o"对象形式的解构赋值:const { 0: a, 1: b, length } = 'hello';console.log(a, b, length); // h e 5console.log(

2022-01-28 21:21:50 910

原创 ES6入门:对象解构赋值原理及应用

ES6入门:对象解构赋值原理及应用一、对象解构赋值的原理1、模式(结构)匹配{}={}2、属性名相同的完成赋值const { age, username } = { username: 'Alex', age: 18 }; //18 "Alex"//完整形式为:const { age: age, username: username } = { username: 'Alex', age: 18 };// 18 "Alex"console.log(age, username);取别

2022-01-27 23:06:19 2722 1

原创 ES6入门:数组解构赋值原理及应用

标题一、解构赋值解析某一数据的结构,将我们想要的东西提取出来,赋值给变量或常量const [a, b, c] = [1, 2, 3];console.log(a, b, c);

2022-01-27 16:05:20 1524

原创 ES6入门:不适用箭头函数的场景

不适用箭头函数的场景1、作为构造函数const Person = () => {};new Person(); //报错因为箭头函数没有this。构造函数最重要的就是this2、需要 this 指向调用对象的时候document.onclick = function () { console.log(this); //document};document.addEventListener( 'click', () => { console.log

2022-01-26 16:31:58 1184

原创 ES6入门:箭头函数、非箭头函数的this指向

ES6入门:箭头函数、非箭头函数中的this指向一、非箭头函数中的this指向1、在全局环境下,this 始终指向全局对象(window), 无论是否严格模式;console.log(this); // window2、函数上下文调用函数直接调用:this 指向和函数在哪儿调用没关系,只和谁在调用有关没有具体调用对象的话,this 指向 undefined,在非严格模式下,转向 window1)非严格模式下,this 默认指向全局对象windowfunction f1(){ retur

2022-01-23 23:27:26 629

原创 ES6入门:箭头函数

ES6入门:箭头函数一、箭头函数// () => {} 相当于一个匿名函数,无法直接起名字const add = (x, y) => { return x + y;};console.log(add(1, 1)); //21).结构 :const/let 函数名 = 参数 => 函数体2).将一般函数改写成箭头函数:function add() {} //声明形式const add = function () {}; //声明形式->函

2022-01-23 23:27:09 524

原创 ES6入门:模板字符串

ES6入门:模板字符串一、模板字符串const username1 = 'alex';const username2 = `alex`;console.log(username1, username2, username1 === username2);//alex alex true二、模板字符串与一般字符串的区别const person = { username: 'Alex', age: 18, sex: 'male'};一般字符串:const info =

2022-01-23 20:05:24 5300 2

原创 ES6入门:let、const、 var区别及注意事项

ES6:基础入门、let、const、 var区别及注意事项一、let、const1、用来声明变量或声明常量2、let 代替 var,声明变量;const 声明常量,为了那些一旦初始化就不希望重新赋值的情况设计的3、var、let声明的就是变量,变量一旦初始化之后,还可以重新赋值4、const 声明的就是常量,常量一旦初始化,就不能重新赋值了,否则就会报错var username = 'Alex';let age = 18;const sex = 'male';console.log(us

2022-01-22 23:30:09 2728 1

原创 JS:包装类、Math对象、Date(日期)对象

JS:包装类、Math对象、Date(日期)对象一、包装类Number()、 String()和Boolean()的实例都是object类型,它们的PrimitiveValue属性存储它们的本身值new出来的基本类型值可以正常参与运算包装类的目的就是为了让基本类型值可以从它们的构造函数的prototype上获得方法var a = new Number(123);var b = new String('慕课网');var c = new Boolean(true);console.log

2022-01-03 20:49:32 411 1

原创 JS:实现继承

JS:实现继承关键: 将子类的prototype指向父类的某个实例,然后子类的实例就可以以某个people类的实例为原型,原型链连上了<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" c

2022-01-02 22:46:31 63

原创 JS: hasOwnProperty 和 in和 在prototype上添加方法

JS: hasOwnProperty 和 in和 在prototype上添加方法一、hasOwnProperty和in1、hasOwnProperty方法可以检查对象是否真正“自己拥有”某属性或者方法2、in运算符只能检查某个属性或方法是否可以被对象访问,不能检查是否是自己的属性或方法function People(name, age, sex) { this.name = name; this.age = age; this.sex = sex;}// 往原型上添加n

2022-01-02 17:31:33 672

原创 JS:原型链、原型链的查找、原型链的遮蔽效应、原型链的终点、关于数组的原型链

JS:原型链、原型链的查找、原型链的遮蔽效应、原型链的终点、关于数组的原型链一、原型链1、原型链:每个对象都可以有一个原型_proto_,这个原型还可以有它自己的原型,以此类推,形成一个原型链。查找特定属性的时候,我们先去这个对象里去找,如果没有的话就去它的原型对象里面去,如果还是没有的话再去向原型对象的原型对象里去寻找… 这个操作被委托在整个原型链上,这个就是我们说的原型链了。2 prototype和constructorprototype属性,它是函数所独有的,它是从一个函数指向一个对象。

2022-01-02 17:31:22 1542 1

空空如也

空空如也

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

TA关注的人

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