- 博客(15)
- 收藏
- 关注
原创 【数据结构与算法】二分查找法
那么如何确定左半部分、右半部分、以及中间值呢,肯定得用指针,二分查找法中我们首先要定义两个指针,一个做指针。答案是有的,比如二分查找法就是其中一种,二分查找法,也叫做二分搜索法,当数组是。上面这种算法可以解决问题,但是它并不优秀,最好的情况下,可能第一个元素就是目标值,时间复杂度是。如图所示数组被分为左右两部分,被中间值所分开,首先用中间值与目标值进行比较,如果中间值。中,查找一个目标值,如果该值存在,则返回对应的索引值,否则返回。,最坏的情况下,可能数组最末尾一个才是目标值,那么就要比较。
2024-04-04 18:41:32
332
原创 MySQL8 行级锁
MySQL InnoDB中的行级锁,优先使用临键锁,根据情况退化为间隙锁和记录锁。索引上的等值查询,如果记录不存在,则优化为间隙锁,但是当记录索引KEY值大于B+树中最大索引KEY的时候,依然保持临建锁,临键值=。对于聚集索引,范围查询,如果查询条件中包含临键值(临键区最大索引值)的时候,保持临键锁,否则退化为间隙锁。普通索引等值查询时,如果索引记录存在,会在二级索引上加该索引前间隙加临键锁和后间隙退化为间隙锁,在聚簇索引上对该索引记录加记录锁。二级索引,会访问到第一个不满足条件的值为止。
2024-03-26 14:21:23
1062
原创 MySQL8表级锁
语句种类MDL锁兼容性说明SHARE_READ与SHARE_READ和SHARE_WRITE兼容,与EXCLUSIVE互斥表锁(LOCK TABLES 表名 READ/WRITE)SHARE_READ_ONLY 与SHARE_READ兼容,与SHARE_WRITE互斥;SHARE_NO_READ_WRITE与SHARE_READ_ONLY 和SHARE_WRITE都互斥。DDL (ALTER…、CREATE…等)EXCLUSIVE与所有MDL锁互斥。
2024-03-26 14:20:31
1177
原创 Java日志框架体系
Java的日志框架有很多,常用的有log4j1.xlog4j2.xlogbackjuljcl等等,这些框架如何使用?他们如何与slf4j-api搭配使用?不搭配slf4j-api能否单独使用?使用过程中需要注意哪些事项?实际开发中我们也会遇到很多问题,本篇文章就是为了讲解下Java的日志体系。我会尽可能的讲解清楚,如有问题,欢迎指正!!!
2024-03-26 14:19:45
1037
原创 【数据结构与算法】字符串匹配 - RK算法
在上面的代码中,通过循环加上截取字符串的方式肯定能获取到文本串中所有跟模式串长度一样的字串,然后通过hash算法,计算哈希值,与模式串的哈希值比较。两个大佬发明,RK算法的产生是因为发明者觉得BF算法那样每个字符一一比较太慢了,他们引入了哈希算法,哈希算法对主串中。,结果是正确的,那么这个算法就是完全没有问题的了吗?其实不是,只是我们的测试用力不够而已,看如下用例,文本串是。上述代码还有可优化的地方,我们看下我们计算文本串中字串的哈希值的时候,有了上面这些字串的哈希值,之后就可以与模式串的哈希值。
2024-03-26 10:36:51
703
原创 【数据结构与算法】字符串匹配 - 暴力算法
通过CTRL + F查找文本这种操作相信每个人都有,在一段文本中查找另外一段文本,这个操作就叫做字符串的模式匹配,比如在AABABCDEF中查找ABCD,那么AABABCDEF被叫做文本串(也叫主串),ABCD被叫做为模式串,通常主串的长度使用N来表示,模式串的长度使用M来表示,上面两个串的匹配情况如下图所示:正如上图绿色部分那样,文本串中包含模式串,结果就是匹配到了。字符串模式匹配的算法有很多,比如暴力算法、KMP算法、BM算法、BK算法等,一一来介绍。
2024-03-17 21:28:13
1124
原创 【力扣】28. 找出字符串中第一个匹配项的下标
给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从 0 开始)。如果needle不是haystack的一部分,则返回-1。needle。
2024-03-09 11:38:42
388
原创 「力扣」27. 移除元素
给你一个数组nums**和一个值val,你需要移除所有数值等于val**的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以**「引用」**方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
2024-03-09 10:53:41
397
原创 「力扣」26. 删除有序数组中的重复项
给你一个的数组nums,请你删除重复出现的元素,使每个元素,返回删除后数组的新长度。元素的应该保持。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为knumsnumsknumsnumsnumsk如果所有断言都通过,那么您的题解将被。
2024-03-09 10:42:34
310
原创 「力扣」1. 两数之和
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。**进阶:**你可以想出一个时间复杂度小于O(n2)的算法吗?
2024-03-09 10:38:14
358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人