![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
rail1000
最好的学习就是对外输出。
展开
-
数据结构-KMP算法(C#实现)
假设已经知道前j位的next数组值,此时要计算j+1,这时要分两种情况,首先设模式字符串为P,设Next[j]=k(即为P[j]字符的最长公共前后缀的长度),如果P[k]=P[j],那么P[j+1]字符的最长公共前后缀的长度就为k+1,因为我们知道P[j]的最长公共前缀和的长度为k,即0->k-1的字符和j-k+1 -> j的字符此时是相同的,而此时又加上了P[k],P[j],因此,P[j+1]的最长公共前缀和的长度就变为k+1。以上仅是手推,而需要使用程序计算得到,则要知晓一个规律。原创 2023-11-25 22:23:50 · 300 阅读 · 0 评论 -
数据结构-翻转单词(C#实现)
C#实现单词提取和翻转单词输出原创 2023-11-24 20:32:28 · 62 阅读 · 1 评论 -
数据结构-最长回文子串(C#实现)
最长回文字符子串C#实现原创 2023-11-24 18:16:31 · 57 阅读 · 1 评论 -
数据结构-寻找字符串最长公共前缀(C#实现)
首先寻找到字符串数组中的最短的那个字符串,得到其序号以及其长度,然后根据最短字符串的长度,对每个字符串的字符和最短字符串的相同位置字符进行依次比较,直到其中某个字符串不符合则说明最长公共前缀即为上一次比较的位置,或者最短字符串被遍历完毕,则说明最短字符串即为最长公共前缀。查找字符串数组中的最长公共前缀。原创 2023-11-22 22:26:33 · 90 阅读 · 1 评论 -
数据结构-对角线遍历(C#实现)
根据题目,在第一次遍历时,可以发现,其坐标为(0,0),而往上遍历下一个时,坐标变为(-1,1),此时此坐标在矩阵中并不存在,因此开始第二个对角线的遍历,此时需要遍历的坐标变为(0,1),其下一个遍历的坐标为(1,0),而继续遍历时,遍历坐标为(2,-1),此时第二条对角线遍历结束,接下去的对角线遍历都可以此类推,至此,可以发现,第一条对角线,也即奇数次对角线遍历的坐标变化规律为行数-1,而列数+1,而偶数次对角线的变化规律为行数+1,列数-1。原创 2023-11-22 21:19:50 · 101 阅读 · 1 评论 -
数据结构-零矩阵
2.思路:遍历每一个矩阵,每发现一个等于0的元素就将其行列号记录下来存储在HashSet中,遍历完所有的元素后,在依次将Set中的所有的行列的元素置为0。1.问题:若M × N矩阵中某个元素为0,则将其所在的行与列清零。原创 2023-11-19 21:50:44 · 32 阅读 · 0 评论 -
数据结构-C#实现矩阵的旋转
旋转矩阵,第一行变为最后一列,第二行变为倒数第二列,以此类推,最后一行变为第一列。再分析其坐标变化规律,可以发现,[0,0]变为[0,2],[0,1]变为[1,2],[0,2]变为[2,2],由此可以看出,第一行变为最后一列时,列的索引保持为length-1-i,而行索引则从0递增,而再观察第二行,第三行均有此规律。由此便可以新增一个空白矩阵,在两次循环中将变化的数据按照变化规律给写入即可。2.不新增数据,直接在矩阵里面变换坐标。原创 2023-11-18 23:12:07 · 211 阅读 · 1 评论 -
数据结构-合并区间(C#实现)
使用C#实现合并区间原创 2023-11-18 13:47:51 · 90 阅读 · 1 评论 -
数据结构-搜索插入位置(二分查找)
c#二分查找原创 2023-11-17 00:12:31 · 44 阅读 · 1 评论 -
数据结构-寻找数组的中心索引
数组的中心索引C#实现原创 2023-11-15 23:53:30 · 70 阅读 · 0 评论