自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 golang实现差分

例如如果要对原始数组每个加上1,那时间复杂度就是o(n),而用差分可以做到o(1),那是怎么做到的呢,这和之前的前缀和密不可分,因为原始数组的某个位置的元素等于差分数组的前缀和,假设原始数组中2到4都要加上1,那么只需要差分数组第二个元素加上1就可以实现后面所有元素都加上1,但是我们不需要对5进行操作,故在区间的结束4加上一的后面元素全部再减去加的数1,就可以实现整个区间值的更新。其实可以将差分看作是前缀和的逆过程,因为差分的核心的思想就是另一个辅助数组计算当前数组相邻两个元素的差值,例如,对于原始数组。

2023-10-13 00:03:32 219

原创 go语言实现前缀和

前缀和是实现数组区间和的一种方法,其原理在于预先将一个数组的起始位置到数组任意位置的数值和存入另一个新的数组中,这个新的数组就叫前缀和数组。其主要思想是以空间换时间。需要注意的是该前缀指的是数组的下标,且求数组前缀和分为一维和二维的。4.求原数组某个区间数值和“arrSum[end] - arrSum[start-1] ”但是上面代码考虑到当起始为0时,start-1越界,所以采用“arrSum[end] - arrSum[start] + arr[start]”(同时也减少了一次赋值)

2023-10-11 20:11:46 160

原创 go语言实现二分查找binarySearch

例如只剩数组下标分别为7和8的两个数,而其中需要找寻的数是下标为8的数,由于mid := (left + right) / 2会向下取整,加入left=mid,mid会是始终为7,造成死循环,故一定要加1,使其向上取整。数据集中查找目标元素。方法顾名思义采用二分的方法实现查找,二分的意思即是对半分,将数据集中间的元素值和需要查找的元素进行比较,不断缩写被二分的区域,直至最后确定要查找的元素。比如下面的例子,在有序的数据集中找寻10,则通过一次二分,把右边的区域拎出来继续二分,以此往复即可以找到10。

2023-10-11 15:01:18 174

原创 go语言实现归并排序

比较数组的大小,需要两个指针,指向较小的数把数取出来,然后存入临时数组中,而这个临时数组的长度等于传进来的两个数组的长度和,然后把这个取出数值的指针向后移动一位。当然存在一方指针先到达最后,那么就会退出循环,需要把另一个数组中的值取出来放入临时数组中。分解数组采取二分法,故取长度除以2,同时采用递归不断分解数组,直到分解到其长度为0或1。将两个数组进行大小比较,从第一位开始,小的放入归并的数组中。递归分解数组,采取二分法不断分到最小(数组长度为0或1)将所有子数组进行归并,采取递归的方式。

2023-10-09 17:51:23 131 1

原创 go语言实现快速排序

【代码】go语言实现快速排序。

2023-10-08 23:38:55 64 1

原创 微信小程序中this.data和this.setData之间的差别

页面的重新渲染和数据绑定,因此在更新数据时需要注意。`this.setData()`方法是小程序框架提供的用于更新页面数据的方法。它接受一个对象作为参数,对象中包含需要更新的数据字段及其对应的值。总而言之,setData可以使得在数据被修改的同时触发重新渲染,特别是修改数组的时候,记得用this.setData修改数据。为了确保数据的更新可以正确地反映到页面上,需要使用`this.setData()`方法来更新数据。在小程序中,当使用`this.data`直接修改数据时,数据的更新。

2023-06-28 22:29:34 781 1

原创 babel中generator的引入错误问题TypeError: generate is not a function

TypeError: generate is not a function由此错误可知该generate不是一个函数,所以就到。这个函数被重新用新的函数名发送了,所以只需要调用。而我们想要使用的generate函数又恰好在这个。经过分析可以发现源码将。

2023-06-25 01:50:19 629 1

原创 SyntaxError: Cannot use import statement outside a module

ESM 使用import和export关键字分别包含其他模块中的代码并使其可用。CommonJS 使用require()函数包含其他模块的代码,并使用module.exports对象使代码可供其他模块使用。Node 生态系统中最令人困惑的部分之一是它包含两个不同的模块系统,ESM(ECMAScript 模块)和 CommonJS。这是一个问题,因为两个模块系统彼此不兼容。错误“SyntaxError:无法在模块外部使用 import 语句”是由于。要解决此问题,您必须。

2023-06-25 01:01:14 22932

原创 什么是commonJS模块以及使用方法

在上面的例子中,`someFunction` 函数被定义为模块的一部分,并通过 `module.exports` 导出。每个模块都有自己的作用域,模块内部的变量和函数默认是私有的,不会污染全局命名空间。如果你想在浏览器或支持 ES 模块的环境中使用 `import` 和 `export` 语法,你可以使用构建工具(如 Babel、Webpack)将模块转换为符合 ES 模块规范的代码。通过 CommonJS 模块,你可以实现模块的定义、导出和加载,使代码可以更好地组织和复用。

2023-06-25 00:41:49 2290

原创 在使用selenium爬虫时,出现找不到节点的情况&&selenium隐式等待和显示等待的区别

最后,在找到节点后,要注意,你只是握住了开门的钥匙,但是房间里的东西(节点的属性和文本内容)还不属于你,你必须进去,即选择要text还是get-attribute。第三,页面在加载的过程中,该类名还没有加载出来,就发生了页面的跳转,selenium来不及抓取;当如下图所示在寻找页面中的元素节点时,出现找不到节点的“name”的情况。:调用Selenium的等待机制,可选择显示等待和隐式等待,这里推荐选取。导致找到的节点并非自己想要的节点;"这样可以让浏览器对象更快的找到你想要的元素。逐层递减筛选,即改成"

2023-05-24 10:45:03 233

原创 运行docker时,VirtualBox报错code E_FAIL (0x80004005)

2.重新下载VirtualBox无效。1.选择正确的VirtualBox。1.更新VirtualBox无效。

2023-05-22 19:05:30 645

原创 mysql: [Warning] Using a password on the command line interface can be insecure.ERROR 1045 (28000):

检查密码是否正确:确认使用的密码是否正确,可以尝试使用其他工具登录MySQL数据库,或者重置密码后再次尝试登录。检查权限是否足够:确认用户'root'是否拥有足够的权限,可以使用GRANT语句授权或者修改用户权限。

2023-05-13 15:37:51 1377

原创 Unknown system variable ‘tx_isolation‘

因为当前的MYSQl是8.x版本的,在5.x的版本中可以使用”tx_isolation"查看隔离级别 ,但是在8.x中的版本使用的是“transaction_isolation”,更改后即可成功查看。

2023-05-13 15:11:25 2638

原创 Failed to open file ‘“C:\fruit.sql“‘, error: 22

在这种情况下,需要检查SQL文件的路径是否正确,以及文件是否存在和可读。如果文件路径正确,但是仍然无法打开文件,可能需要检查文件权限和用户权限等问题,以确保程序能够正确地读取和导入SQL语句。同时,也需要注意SQL注入等安全问题,以确保数据的安全性和保密性。2.关于文件路径------------------采取绝对路径即可,但要注意不要加引号(即source ........sql)1.关于文件权限------------------检查文件属性是否可读(可点击文件的属性查看和修改)

2023-05-13 09:36:56 119

原创 数据结构和算法的关系

简单而言,数据结构就是计算机存储数据的方式,或者说方法。你可以类比成你出去shopping回来,你买了雪糕,买了书籍手账,买了零食等等,你会把雪糕放到冰箱,把零食放到零食的储物柜,书籍放到书架上,而这些东西所放置的位置就是他们的存储结构,雪糕的存储结构就是冰箱。当然了,算法和数据结构是紧密不可分离的,不能撇开其中一个研究另一个,举个简单的栗子,假设你把雪糕放在了书架上,那原本那套算法就不能有效的帮你查找到雪糕(数据)了。所以存储数据时要想到用合适的数据结构进行存储,且选取一个好的算法与其适配。

2023-04-22 15:27:03 83

原创 Java内部类,静态内部类,局部内部类,匿名内部类的用法和注意点

匿名内部类即是没有名字的类,同时定义和实例化对象同时完成,一般与接口一起使用,接口是不能像类一样调用对象的,所以一般只能够通过接口实现类的方式来使用,而匿名内部类就给我们提供了一种调用接口的方式,其直接在匿名内部类内部将接口中的方法进行重写。b:静态内部类是无法向普通内部类一样可以直接调用外部类的对象和方法的,其必须通过创建外部类的对象的方式来调用,当然,外部类的静态方法和属性可以直接调用。即类在外部类内部,需要创建外部类后才能使用,因为内部类隶属于外部类,其就像类中的属性和方法一样,必须创建后才能使用。

2023-04-12 10:30:57 262

原创 java抽象中方法的使用特点以及抽象类

关键在于抽象,就好比于生病了要吃药,但是吃的什么药另说,这个另说即是子类继承后所要完成的事,也就是为什么不需要方法体的原因,这体现了java的继承性,使得java可拓展。2.同时,这个抽象的概念也含有只要时我的继承类就必须要有抽象方法的特性,例如动物中进食的要求,所以只要对这个抽象类进行继承后就必须重写抽象方法。可以想象成动物和动物的猫科动物的关系。5.abstract不能和static一起使用毕竟抽象方法,且抽象类不可以被实例化,abstract方法也无方法体,调用了也没有意义,所以并不被允许。

2023-04-11 20:47:51 319

原创 java子类方法中的访问修饰符为什么要比父类的修饰符要大?

Java中子类继承父类的是基于子类的对象可以被当做父类的对象使用,即子类对象可以替代父类对象使用。如果子类方法的访问修饰符比父类的小,那么在子类对象被当做父类对象使用时,父类对象可能无法访问子类方法,从而破坏了继承的特性。因此,为了保证子类对象可以完全替代父类对象使用,子类方法的访问修饰符必须大于等于父类的。正因为这个访问修饰符的限定,使得java可以让父类的引用调用子类的对象,实现抽象和可扩展的目的,这就好比是可以调用子类中具有父类属性的方法。当cat调用方法时,就会显示子类重写的内容。

2023-04-11 20:12:20 771 1

原创 java中static关键字以及它和this为什么不能一起使用

关于java中static的使用场景

2023-04-11 00:01:30 223

原创 Java可变参数

主要讲了java可变参数的用法

2023-04-10 22:41:02 66 1

原创 JAVA中this的用法

用法三:引用对象的构造方法(但是要记住,调用时必须把其放在方法体的第一行,这是因为this(),是构造函数,其代表着一个对象的初始化,而一个对象不能被反复初始化,所以只能调用一次,而对对象的操作都是建立在对象初始化的前提下完成的,所以必须放在头部)刚开始学java的时候,总是对其中this的用法很疑惑,网上搜索this的用法也只是讲了其中的一个或两个,而这篇文章彻底教会你this的所有用法。用法四:this指向对象本身,可返回对象引用(即谁调用,则返回谁的引用)用法二:引用当前对象的成员方法。

2023-04-10 20:39:13 554 1

原创 Java方法的重载(overload)

其中,有几个关键点需要注意,一是同一个类,二是相同方法名,三是参数列表必须不同,其余方法要素可同可不同。首先什么是方法的重载,其意思就是同一个类中,相同的方法名,却定义不同的方法。

2023-04-10 20:05:12 136 1

原创 JAVA二维数组如何循环打印

如上图所示,因为二维数组的行存储的是一个一维数组的地址,所以只用一层循环只能打印出每个一维数组的首地址。而第二层循环就如同打印一维数组一样能将其存储的内容打印出来。如图所示,java的二维数组,需要两次循环才能打印出来,这个其存储数据的方式有关。

2023-04-10 19:50:44 436

空空如也

空空如也

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

TA关注的人

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