数据结构算法
文章平均质量分 88
数据结构算法,图文并茂,
代号0408
简单是效率的灵魂
展开
-
剑指 Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。给定 target =5,返回true。给定 target =20,返回false。原创 2024-04-28 08:56:19 · 487 阅读 · 0 评论 -
算法基础:并查集详解
并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。方法:将集合1或者2插入到集合1或者2的某个位置即可【根节点之下的某个位置】可以看到,在计算x的集合编号的时候还是比较耗时的,所以介入了一个优化算法。中的祖宗节点【6】指向集合。原创 2024-04-25 11:16:54 · 848 阅读 · 0 评论 -
剑指 Offer 03.:数组中重复的数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。原创 2024-04-25 11:12:22 · 606 阅读 · 0 评论 -
探秘KMP算法:解密字符串匹配的黑科技
所指向位置的字符都是第一趟匹配以及匹配过的,而经过第二趟,第三趟,第…其实这个问题的原因很简单,就是下标初值得取值不同导致next数组会不一样,具体得,我们还是用上面得串来看看,下标从0开始的情况下,它对应的next数组是什么样的。根据题意,一种比较常见的解法是利用BF算法,也就是直接进行暴力匹配,具体的匹配过程是怎么样的,我们不妨还是以之前的两串为例,即文本串T = 【,一个很大的变化是指针的回退情况,上面也看到了,暴力的解法中,频繁的回退指针严重影响了算法的性能,其实很多匹配过程是多余的,比如。原创 2024-04-08 21:59:21 · 1293 阅读 · 1 评论