1、岛问题
并行算法
2、并查集:支持集合合并的结构
图指针向上指的结构
3、KMP算法
求子串问题,例如str1="abc1234ef",str2="1234",问str2是不是str1的子串
在z位置上配不上了,于是z位置往前跳,跳到next数组的下一个位置开始同s开始比对
3.1求解next[]数组
认为规定0、1位置的信息分别为-1,0;2位置的信息根据前面两个位置的信息决定。
假设求解的是I位置的数据,看I-1位置的数据,假设为20,那么判断位置21跟位置I-1的信息是否相同,如果相同,那么i位置数据为20+1=21;假设不相等,那么看next[21]的数据为多少,假设为7,那么判断位置8的信息跟位置I-1的是否相等,如果相等,那么I位置的信息为7+1=8,如果不想等,那么看位置8的数据为多少,一直判断下去。
例子:来到I 位置,此时I-1的数据是8,如果I -1的信息为e,即跟第9位置的信息一样,那么I 的数据为8+1=9;假设不一样,那么就看9位置上的信息为3,接着判断4位置的信息跟I-1位置的信息是否一样,如果一样,那么I 位置上的信息就为3+1=4;假设不一样,那么就看4位置上的数据0,接下来判断0位置上的信息跟I-1上的信息是否一样,如果一样就为0+1=1,否则就为0,判断结束。