- 博客(6)
- 收藏
- 关注
原创 马拉车算法
一。回文字符串可能是奇回文也可能是偶回文,暴力解法需要在每次计算以s[i]为中心的最长回文时都要分两种情况。如aavaa,bacca,它们的最长回文分别是aavaa和acca。为了简化处理,我们在每一个字符的左右两边都加上特殊字符(肯定不存在于原字符串中的字符),让字符串的最长回文始终变成一个奇回文。#a#a#v#a#a#,#b#a#c#c#a#的最长回文分别是#a#a#v#a#a#和#...
2019-11-13 17:37:09 199
原创 KMP算法golang实现
KMP具体讲解就不说了,我讲得肯定没有网上的各位大神好,这里我找到一篇讲得比较好的,通俗易懂的。可以参考下:http://wiki.jikexueyuan.com/project/kmp-algorithm/define.html 直接上代码,难懂的地方我稍微注释了下。//传统next数组func getNext(p string) []int { pLen := l...
2019-01-15 17:20:18 1080 2
原创 红黑树 删除调整步骤终极详解
上一篇讲了插入调整,现在来讲删除调整。红黑树的删除无疑是最难的,抛开调整,红黑树的插入删除都跟选择二叉树一样,所以前面的步骤网上很多了,在这里只讲如何调整,以满足红黑树性质。 还是从头到尾理一下吧... 先定义一下,删除节点为d,真实删除节点为reald,顶替节点为x,x的兄弟节点即前reald的兄弟节点为w。 找到要删除的节点d。...
2019-01-14 17:16:46 6517
原创 红黑树 插入调整步骤终极详解
看了很多资料,网上讲红黑树插入删除讲得实在太乱了,没有统一的步骤,让初学者容易混乱。这里我整理下,左旋右旋就不详解了。直接看插入删除的具体操作。 我就不画图了,借助https://www.cs.usfca.edu/~galles/visualization/RedBlack.html来直接截图给大家演示1.插入 插入的节点默认是红节点 1.1 找到...
2019-01-14 15:10:27 2236 2
原创 将8位的有符号数强转64位的无符号数的坑
今天在做公司大数据分析时遇到个坑,某些数据莫名其妙变得特别大: 最终定位出原因在这个强转这里当8位有符号数扩展为64位无符号数时,底层汇编实际上使用的是movsx带符号扩展指令,意思就是扩展的那些位都用符位来补全,这里就造成了value的高58位全为1,从而值异常大。我们再来做个简单测试:-29和157的二进制是一样的10011101,为何强转后的值不一样,原因在于计算机内存负数的方式为补码,所以...
2018-04-23 19:28:02 1546
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人