- 博客(30)
- 收藏
- 关注
原创 vscode使用技巧
原文: https://www.arryblog.com/guide/vscode.html#vscode-%E5%B8%B8%E8%A7%81%E6%8F%92%E4%BB%B6%E5%AE%89%E8%A3%85。ctrl + 鼠标滚轮缩放字体大小。vscode常见插件安装。光标设置,平滑插入动画。
2024-06-07 00:38:07
356
原创 JavaScript 进阶 - 第4天
如果是简单数据类型拷贝值,引用数据类型拷贝的是地址 (简单理解: 如果是单层对象,没问题,如果有多层就有问题)了解函数中 this 在不同场景下的默认值,知道动态指定函数 this 值的方法。// 该箭头函数中的 this 与 sleep 中的 this 一致。// 该箭头函数中的 this 为函数声明环境中 this 一致。// 该箭头函数中的 this 为函数声明环境中 this 一致。// oldObj[k] ['乒乓球', '足球']// // k 属性名 oldObj[k] 属性值。
2024-06-06 00:05:20
983
原创 JavaScript 进阶 - 第3天笔记
了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。
2024-06-06 00:04:49
863
原创 JavaScript 进阶 - 第2天
了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。
2024-06-06 00:02:38
723
原创 JavaScript 进阶 - 第1天
学习作用域、变量提升、闭包等语言特征,加深对 JavaScript 的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。
2024-06-06 00:02:06
593
原创 JavaScript 基础第三天笔记
script > // 1. 语法,使用 [] 来定义一个空数组 // 定义一个空数组,然后赋值给变量 classes // let classes = [];// 2. 定义非空数组 let classes = [ '小明' , '小刚' , '小红' , '小丽' , '小米' ] </ script >// 1. 语法,使用 [] 来定义一个空数组。
2024-06-05 23:58:11
864
原创 用拉链法实现哈希表
哈希表核心原理 已经介绍过哈希函数和 key 的类型的关系,其中 hash 函数的作用是在 O(1) 的时间把 key 转化成数组的索引,而 key 可以是任意不可变的类型。但是这里为了方便诸位理解,我先做如下简化:1、我们实现的哈希表只支持 key 类型为 int,value 类型为 int 的情况,如果 key 不存在,就返回 -1。2、我们实现的 hash 函数就是简单地取模,即 hash(key) = key % table.length。
2024-06-05 00:04:39
298
原创 哈希表基本原理
上面的说明应该已经吧哈希表的底层原理全部串起来了,最后模拟几个面试问题来总结一下本文的内容:1、为什么我们常说,哈希表的增删查改效率都是 O(1)?因为哈希表底层就是操作一个数组,其主要的时间复杂度来自于哈希函数计算索引和哈希冲突。只要保证哈希函数的复杂度在 O(1),且合理解决哈希冲突的问题,那么增删查改的复杂度就都是 O(1)。2、哈希表的遍历顺序为什么会变化?
2024-06-05 00:02:22
799
原创 双端队列(Deque)原理及实现
如果你理解了前面讲解的内容,这个双端队列其实没啥可讲的了。标准队列 只能在队尾插入元素,队头删除元素,而双端队列的队头和队尾都可以插入或删除元素。普通队列就好比排队买票,先来的先买,后来的后买;而双端队列就好比一个过街天桥,两端都可以随意进出。当然,双端队列的元素就不再满足「先进先出」了,因为它比较灵活嘛。在做算法题的场景中,双端队列用的不算很多。感觉只有 Python 用到的多一些,因为 Python 标准库没有提供内置的栈和队列,一般会用双端队列来模拟标准队列。
2024-06-04 23:54:18
319
原创 用数组实现队列-栈
先用数组实现栈,这个不难,你把动态数组的尾部作为栈顶,然后调用动态数组的 API 就行了。因为数组尾部增删元素的时间复杂度都是 O(1),符合栈的要求。
2024-06-04 23:52:35
122
原创 环形数组技巧
数组可能是环形的么?不可能。数组就是一块线性连续的内存空间,怎么可能有环的概念?这段代码的关键在于求模运算 %,也就是求余数。当 i 到达数组末尾元素时,i + 1 和 arr.length 取余数又会变成 0,即会回到数组头部,这样就在逻辑上形成了一个环形数组,永远遍历不完。这就是环形数组技巧。这个技巧如何帮助我们在 O(1) 的时间在数组头部增删元素呢?即,我们仅仅把元素 1 的位置标记为空,但并不做数据搬移。你可以看到,当头部没有位置添加新元素时,它转了一圈,把新元素加到尾部了。
2024-06-04 23:51:15
575
原创 用链表实现队列-栈
一些读者应该已经知道该怎么用链表作为底层数据结构实现队列和栈了。因为实在是太简单了,直接调用双链表的 API 就可以了。注意我这里是直接用的 Java 标准库的 LinkedList,如果你用之前我们实现的 MyLinkedList,也是一样的。
2024-06-04 23:48:16
178
原创 队列-栈基本原理
栈就像一摞盘子,最先放的压在最下面,最后放的留在最上面,拿的时候也是最上面的先被拿走。所以我们常说,队列是一种「先进先出」的数据结构,栈是一种「先进后出」的数据结构,就是这个道理。说它操作受限,主要是和基本的数组和链表相比,它们提供的 API 是不完整的。比方说我们前面实现的数组和链表,增删查改的 API 都实现过了,你可以对任意一个索引元素进行增删查改,只要索引不越界,就随便你。当然,这个图中把栈竖着画,队列横着画,只是为了更形象,但实际上它们底层都是数组和链表实现的,后面会讲到。
2024-06-04 23:45:58
245
原创 动态数组代码实现
下面我会直接给出一个简单的动态数组代码实现,包含了基本的增删查改功能。这里先给出几个关键点,等会你看代码的时候可以着重注意一下。
2024-06-03 00:00:30
598
2
原创 数组(顺序存储)基本原理
我梳理一下上面的因果逻辑,静态数组本质上就是一块连续的内存空间,int arr[10] 这个语句我们可以得知:1、我们知道这块内存空间的首地址(数组名 arr 就指向这块内存空间的首地址)。2、我们知道了每个元素的类型(比如 int),也就是知道了每个元素占用的内存空间大小(比如一个 int 占 4 字节,32 bit)。3、这块内存空间是连续的,其大小为 10 * sizeof(int) 即 40 字节。
2024-06-02 23:56:43
900
原创 链表代码实现
下面我会分别用双链表和单链给出一个简单的 MyLinkedList 代码实现,包含了基本的增删查改功能。这里给出几个关键点,等会你看代码的时候可以着重注意一下。
2024-06-02 23:49:08
703
原创 链表(链式存储)基本原理
这仅仅是一个最简单的单链表节点,方便力扣出算法题来考你。主要区别有两个:1、编程语言标准库一般都会提供泛型,即你可以指定 val 字段为任意类型,而力扣的单链表节点的 val 字段只有 int 类型。2、编程语言标准库一般使用的都是双链表而非单链表。单链表节点只有一个 next 指针,指向下一个节点;而双链表节点有两个指针,prev 指向前一个节点,next 指向下一个节点。有了 prev 前驱指针,链表支持双向遍历,但由于要多维护一个指针,增删查改时会稍微复杂一些,后面带大家实现双链表时会具体介绍。
2024-06-02 23:18:25
719
原创 【无标题】
2、动词的时态动词的时间动词的状态 一般 进行 完成 完成进行 时态的种类 现在进行时态 助动词be的变位 + 动词的现在分词 现在完成时态 助动词have的变位 + 动词的过去分词 I/you/we/they + have She/he/it has 现在完成进行时态 have的变位 + been + 动词的现在分词 I/you/we/they + have + been + 动词的现在分词 She/he/it ha
2024-05-30 00:45:27
678
原创 3分钟看懂车险
不过交强险的保额远不及商业险,且赔付仅用于第三方,无法赔付己方的车和人的损失,所以补充一定的商业险来应对各种意外情况是非常有必要的。商业险中的三大主险根据不同的情况,分别对自己的爱车、他人他车及自己的人身安全进行保障,但也有未覆盖的风险保障范围。对第三者以及自己的车辆都进行保险,同时医疗过程中可能会出现的不报销情况也被规避,将损失降到最低,不过对自身保护不足,需自己有额外的保险。综上,车险对于大家来说是非常有必要的,同时车险的选择也一定要根据自身情况选择合适的险种,切忌一味照搬方案,适合自己的才是最好的。
2024-05-26 23:45:33
252
原创 新交强险条款的详细内容是什么
被 保险机动车发生涉及受害人受伤的交通事故,因抢救受害人需要保险人支付抢救费用的,保险人在接到公安机关交通管理部门的书面通知和医疗机构出具的抢救费用 清单后,按照国务院卫生主管部门组织制定的交通事故人员创伤临床诊疗指南和国家基本医疗保险标准进行核实。保险事故发生后,保险人按照国家有关法律法规规定的赔偿范围、项目和标准以及交强险合同的约定,并根据国务院卫生主管部门组织制定的交通事故人员创伤临床诊疗指南和国家基本医疗保险标准,在交强险的责任限额内核定人身伤亡的赔偿金额。其中无责任的赔偿限额分为无责任死亡。
2024-05-26 23:39:00
409
原创 【文字解读】《机动车交通事故责任强制保险条例(2019修订)》
机动车交通事故责任强制保险,是指由保险公司对被保险机动车发生道路交通事故造成本车人员、被保险人以外的受害人的人身伤亡、财产损失,在责任限额内予以赔偿的强制性责任保险,即我们通常所说的“交强险”。对于发生交通事故前身处保险车辆之内的人员,在发生事故时身处保险车辆之外是否属于本车人员以外的受害人,存在两种解释,一种解释是属于本车人员以外的受害人,即“第三者”;另一种解释是属于“本车人员”。交强险赔偿权利人的范围是:本车人员、被保险人以外的受害人,也就是说,本车人员、被保险人不属于赔偿权利人的范围。
2024-05-26 23:36:32
391
原创 idea的快捷键
比如 BeanDefinition 接口的 getBeanClassName() 方法只被 AbstractBeanDefinition 抽象类实现,我们对这个方法使用快捷键就可以直接跳转到 AbstractBeanDefinition 抽象类中对应的实现方法。如果我们想直接跳转到某个方法/类的实现类,直接在方法名或者类名上使用快捷键 Ctrl + Alt + B/鼠标左键 (Win) / Command + Alt + B/鼠标左键 (Mac) 即可。平时,我们阅读源码的时候,经常需要查看类的层次结构。
2024-03-05 00:39:04
1117
1
原创 lanyubaby- Lambda表达式
如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定类型的方法引用。如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写,此时如果这行代码是return语句,必须省略return不写,同时也必须省略 ”;如果某个Lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用。参数类型可以省略不写 如果只有一个参数,参数类型可以省略,同时 ()也可以省略。
2024-03-05 00:03:27
195
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人