草庐IT

HashSet 添加/遍历元素源码分析

HashSet类图HashSet简单说明HashSet实现了Set接口HashSet底层实际上是由HashMap实现的publicHashSet(){map=newHashMap();}可以存放null,但是只能有一个nullHashSet不保证元素是有序的(即不保证存放元素的顺序和取出元素的顺序一致),取决于hash后,再确定索引的结果不能有重复的元素HashSet底层机制说明HashSet底层是HashMap,HashMap底层是数组+链表+红黑树模拟数组+链表的结构/***模拟HashSet数组+链表的结构*/publicclassHashSetStructureMain{publics

KMP算法

KMP算法是一个字符串匹配算法,或者说是一个子字符串匹配算法算法在字符串str中搜索子串pattern,如果存在,返回这个子串的起始索引,如果不存在,返回-1暴力枚举匹配暴力的字符串匹配算法非常简单,就是枚举所有可能的起始索引i,对于每一个索引,都通过与pattern逐个字符地进行比较来检查是否匹配,代码如下:staticintmatchString(Stringstr,Stringpattern){for(inti=0;i显而易见,这种算法在一些比较极端的情况下的运行情况非常不理想如str="aaaabcacbab",pattern="aaaac"时在i=0时,i和j增加到4发现不匹配iaa

KMP算法

KMP算法是一个字符串匹配算法,或者说是一个子字符串匹配算法算法在字符串str中搜索子串pattern,如果存在,返回这个子串的起始索引,如果不存在,返回-1暴力枚举匹配暴力的字符串匹配算法非常简单,就是枚举所有可能的起始索引i,对于每一个索引,都通过与pattern逐个字符地进行比较来检查是否匹配,代码如下:staticintmatchString(Stringstr,Stringpattern){for(inti=0;i显而易见,这种算法在一些比较极端的情况下的运行情况非常不理想如str="aaaabcacbab",pattern="aaaac"时在i=0时,i和j增加到4发现不匹配iaa

scanner中next与nextline方法的使用与区别

1.Scanner对象​ 在学习java流程控制之前,我们首先学一下Scanner对象,通过Scanner类来获取用户的输入,java.util.Scanner是java5之后出现的!基本语法Scannerscanner=newScanner(System.in);我们可以再程序中按住ctrl然后点击Scanner查看Scanner类的源码此外还可以看到关于Scanner类中的方法,点击idea作为左下方的structure,也可进入Scanner源码之后,使用快捷键ait+7代码示例:publicclassDemo03{publicstaticvoidmain(String[]args){/

scanner中next与nextline方法的使用与区别

1.Scanner对象​ 在学习java流程控制之前,我们首先学一下Scanner对象,通过Scanner类来获取用户的输入,java.util.Scanner是java5之后出现的!基本语法Scannerscanner=newScanner(System.in);我们可以再程序中按住ctrl然后点击Scanner查看Scanner类的源码此外还可以看到关于Scanner类中的方法,点击idea作为左下方的structure,也可进入Scanner源码之后,使用快捷键ait+7代码示例:publicclassDemo03{publicstaticvoidmain(String[]args){/

力扣02 两数相加

力扣02两数相加题目:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。示例:2→4→35→6→4结果:7→0→8输入:L1=[2,4,3]​ L2=[5,6,4]输出:L=[7,0,8]注:因为4+6=10个位是0十位是1所以要向前进1解法一:迭代法解题思路:定义一个变量为total用来存储两个数字相加的和,定义一个变量为next1用来存储total的十位上的数字也就是需要向前进的数字,可以先建立一个虚拟头结点,这个虚拟头结点指向

LeetCode - 两数相加

题目信息源地址:两数相加给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。提示信息示例1输入:l1=[2,4,3],l2=[5,6,4]输出:[7,0,8]解释:342+465=807示例2输入:l1=[0],l2=[0]输出:[0]示例3输入:l1=[9,9,9,9,9,9,9],l2=[9,9,9,9]输出:[8,9,9,9,0,0,0,1]提示每个链表中的节点数在范围[1,100]内0题目数据保证列表表示的数字不含前导零实现逻辑结

力扣02 两数相加

力扣02两数相加题目:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。示例:2→4→35→6→4结果:7→0→8输入:L1=[2,4,3]​ L2=[5,6,4]输出:L=[7,0,8]注:因为4+6=10个位是0十位是1所以要向前进1解法一:迭代法解题思路:定义一个变量为total用来存储两个数字相加的和,定义一个变量为next1用来存储total的十位上的数字也就是需要向前进的数字,可以先建立一个虚拟头结点,这个虚拟头结点指向

LeetCode - 两数相加

题目信息源地址:两数相加给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。提示信息示例1输入:l1=[2,4,3],l2=[5,6,4]输出:[7,0,8]解释:342+465=807示例2输入:l1=[0],l2=[0]输出:[0]示例3输入:l1=[9,9,9,9,9,9,9],l2=[9,9,9,9]输出:[8,9,9,9,0,0,0,1]提示每个链表中的节点数在范围[1,100]内0题目数据保证列表表示的数字不含前导零实现逻辑结

油猴插件对next.js 开发的影响

UnhandledRuntimeErrorTypeError:Cannotreadpropertiesofnull(reading'1')错误再现#1.安装nextyarnaddnext#2.配置页面pages#3.启动项目##当启动项目的时候,发现next是依赖react和react-dom来运行的#4.安装reactreact-dom#5.安装完成后,运行页面发现错误##UnhandledRuntimeError##TypeError:Cannotreadpropertiesofnull(reading'1')错误页面:错误猜想1、next依赖错误添加next包的时候,没有安装react和