自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 算法基础之StringBuilder

双参是指定开始的索引 如substring截取那味道,查询范围为[index,str.length()]只是索引还是依照原串。而end长于start的话,长多少,原本位置就被替换掉,没被替换的地方执行后续的拼接。双参,第二个参数限制查询的右边界[0,index+str.length()]可以看到,你如果替换的 start 和end是一样的,就是插入。单参不限制原串,找到的就是最后一个符合目标的子串开头下标。返回的是子串在原串中的第一个字符下标。原本替换的情况,换为直接删除。CopyFrom伏城之外。

2023-06-26 00:41:55 59 1

原创 算法基础之数值溢出

修改方式改为compare比较,底层就是个三元,返回int值,此类方法应多使用。笔者在做算法题时,有些数据会比较大,涉及到long类型了,会导致数值的溢出,大的变成了小的,小的变成了大的。在比较器返回值时,不能返回long。强行转成int会引发很大的问题。

2023-06-21 01:09:07 79

原创 算法基础之字符串遇到的坑

因为String的split方法,调用了substring方法,返回的是一个new String()对象,而我们的“#” 存在了字符串常量池中,我们的数组值存在了堆内存当中。ACM模式,我需要处理输入,把它放入一个String数组里,在双层for循环进行判断,当前数组值,是否=“#”(举例)。要么使用equls方法,string重写过了,比的是字面量。解决方法是,要么使用char数组,比较的是int 值。==比较的是引用地址,自然就不一样。那么问题就是这样,判断进不去。我是在BFS题目中遇到的,

2023-06-20 13:54:44 50

原创 算法基础之队列

因为按照此规则,头节点存放的都是当前滑动窗口内的最大值,不满足滑动窗口范围的会被更新,在滑动窗口内,遇到新的更达至也会被更新。它会按照排序顺序自动维护堆里的值,当堆的size大于K时,它就做继续进值,同时排值的操作了,然后我们再根据倒序进行存值。优先级队列是一种堆的数据结构,它要么是大顶堆,父节点永远大于子节点,或者父节点永远小于子节点(小顶堆)它的底层就是链表,而且是一个双向链表,标记了上一个节点的地址,和下一个节点的地址。头到尾维护一个从大到小的值,如果尾节点小于当前节点值,循环更新整个队列。

2023-06-15 18:17:19 50 1

原创 算法基础之ACM常用技能

我们把entry节点化作一个set给提取出来,放入一个ArrayList里,在利用比较器根据value就可以实现排序。TreeMap是根据自定义比较器进行排序,基本类型如int根据大小排,String类型根据字典顺序排序。我们需要一个键存换算后的单位值如1024MB,又需要一个value去存当前的容量字符串 2T 1G等。TreeSet,Treemap的键在排序时都可以去重,按照树的结构进行排序和去重检测。参数必须是double类型,返回值也是double,你也可以转型为int。链表和数组排序不会去重。

2023-06-14 16:16:41 111

原创 算法基础之排序遇到的坑

所以针对条件1是否满足,不满足按输入顺序进行去重输出这类问题时,可以使用TreeMap,键存放条件1,进行排序,值使用LinkedHashSet 存储对应id的date值 进行去重和保持输入顺序。查阅资料TreeSet底层是树的结构,按照排序规则维持左右节点,而查询是否重复,也是依托树形的结构去查相邻的节点,我人为修改了第二个排序规则,就把树形的结构没有按照。导致去重失败,树的结构在第二个条件下被锁死了,无法正常去重,没法按照条件二的大小情况正常排序。可以发现 最后的20,1去重了,10,1却没有。

2023-06-14 12:50:48 43

原创 算法之单调栈

用result数组存储起来,result【弹栈的下标】 = i - 弹栈的下标。在list不为空的情况下,持续以当前元素是否大于栈顶做循环{证明这个下标的元素,直到当前i才遇到比它更大的。循环结束后,当前的栈顶就大于当前元素ele了。弹栈,弹出来的其实是元素的下标,我用双层暴力循环时间复杂度是O(N²),单调栈的话是O(N)它是一个先进后出,后进先出的,单调递增或者递减的栈结构。剩下的元素即没有比它还大的,它们的下标还在栈里。里面存储的是每个元素对应的index。内容学习自代码随想录。

2023-06-13 22:19:26 252 1

原创 算法基础之树

也就是说,如果一个二叉树的深度为K,且结点总数是(2^k) -1 ,则它就是。二叉搜索树,节点便于搜索,搜索一个节点的时间复杂度O(logN)级别。如a,下标0 对应左右叶子节点公式为 2*下标i +1/ +2。除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的。,如果每一个层的结点数都达到最大值,则这个二叉树就是。a(0) 的左右叶子就是 b(1) c(2)节点数量 2的k次方-1 k为层数。它对节点结构没要求,对节点顺序有要求。下标0,1,2,3,4,5,6。右子树所有节点都大于中间节点。

2023-06-12 16:27:21 40

原创 算法基础之时间复杂度和空间复杂度

int i = 1执行一次, 小于判断和 两次++ 会执行N次。当N→∞时,1和系数3都不重要了 就是O(N)它不管这些取和值,所有操作只会进行一次。所以真正的次数为 某次方数 即 logN。fn代表代码执行次数,O代表正比例关系。类似求极限一样 它其实 还是O(n²)大O表示法:算法的渐进时间复杂度。O1 如 正常的两个值交换。所以时间复杂度是O(1)。解释 2的某次方才大于n。常用时间复杂度举例和解释。On² 如一个2维数组。On 如1个1维数组。

2023-06-12 15:32:38 42

原创 痛定思痛,好好复习一遍Maven

安装 将自己打好的jar包或者war包,安装到我们自己的maven本地仓库中,如果未来其他项目需 要使用maven,可以通过maven将曾经打包好的项目引入到新项目中,作为新项目的资源。虽然平时工作和学习都是用的maven,但知其然,不知其所以然。2、配置文件和源代码放在一个目录中,提高代码和配置文件的耦合。2、配置文件和源代码放在一个目录中,提高代码和配置文件的耦合。1、项目结构不统一,不利于老项目移植新项目。3、测试代码和源代码也放在一起容易造成误删。1、项目结构不统一,不利于老项目移植新项目。

2023-06-08 23:52:21 40

原创 cloud gateway 网关学习和遇到的坑

3删除web 或者百度 gateway exclusion web都不行,原因竟是我没有成功导入gateway!2新增了boot web包,启动是能启动了,但变成了web了之后网关就失效了,无法实现我想要的转发效果。网关项目不需要web启动包,idea自动下包的时候也可能下的不完全,导致不报错也不成功启动。4下载了份正确的包,放入我本地maven,再再libarey里更新了下。排除了yml配置文件问题。我在网上其他人的资料发现这个包可以展开,但我的并没能成功导入进来。我是一个商城项目,为其增加网关服务,

2023-06-08 11:01:47 156

原创 记一次IDEA中MAVEN项目Dependency not found 问题

更新idea 里 Maven的仓库索引后成功导包了。我是父工程管理pom版本,子工程无法实现正确导包。刷新,clean,清除缓存重启都不好使。

2023-06-06 18:39:13 78 1

空空如也

空空如也

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

TA关注的人

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