
算法
文章平均质量分 69
萝卜地里的兔子
爱吃胡萝卜的兔子
展开
-
不使用加法计算两个数的和
为了能够快速的理解最后的算法,这里先准备一些前置知识。这些所谓的前置知识可以理解为“点”,最后只要把这些“点”串联为“线”,就会得到最终的答案。原创 2022-10-28 16:07:53 · 507 阅读 · 1 评论 -
快速判断一个数是2的正n次幂
巧妙利用二进制数的规律和位运算,能够简化很多问题。原创 2022-10-07 17:49:10 · 577 阅读 · 0 评论 -
KMP算法中NEXT数组的作用以及代码实现
在http://blog.youkuaiyun.com/u012613903/article/details/79004094中写到了如何手工去求一个NEXT数组,这个在很多考试中可以用来解题。但是在实际的使用中,NEXT数组究竟发挥着什么样的作用,如何用代码实现KMP算法呢?KMP算法是用来确定一个串是否能在另一个串中找到与之完全匹配的子串,那么首先来看一个字符串匹配的实际例子;被匹配的字符串:原创 2018-01-23 12:01:53 · 2099 阅读 · 0 评论 -
KMP算法NEXT数组纯手工生成
用一个实际的例子来说明,经历了看懂,看不懂,看懂,看不懂,看懂...后我终于决定把它记下来了。例子字符串为:abaabaca首先可以肯定,第一个位置永远位0,第二个位置永远为1.那么可以初始化如下表格:abaabaca01 然后求上表中红色的a多对应的值:公式为(a前面的字符串原创 2018-01-08 16:41:48 · 1355 阅读 · 4 评论 -
求最长回文串-从动态规划到"马拉车"之路(上)
要解决的问题:给定一个字符串,要求求出这个字符串中的最长的回文串子串。例子:cbddba的最长回文子串为 bddbcbdedba的最长回文子串为dbedb由上面的例子可以看到,在考虑回文子串的问题时需要考虑奇偶性。因为奇回文关于中心的某个字符对称,而偶回文关于最中心的两个元素之间的间隙对称。一、动态规划法在动态规划的思想中,总是希望把问题划分成相关联的子问题;然后从原创 2018-01-25 12:57:06 · 1440 阅读 · 0 评论 -
求最长回文串-从动态规划到"马拉车"之路(下)
预备知识:(1)在一个数轴上有两点i和j(i 证明: 因为 i 所以 i = 2m - j;(2)回文串的对称性: 由回文串的定义可以知道,奇回文关于最中心的数对称,而偶回文关于最中心的两个数之间的间隔对称。根据回文串的对称性质,可以得到如下图所示的有用结论: 如图所示,A是一个从0到N的回文串,且M是回文串A的中心,那么就能推出字符串AL[0原创 2018-01-29 09:06:58 · 408 阅读 · 0 评论