11-KMP、并查集

1、岛问题

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

并行算法

2、并查集:支持集合合并的结构

图指针向上指的结构

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

3、KMP算法

求子串问题,例如str1="abc1234ef",str2="1234",问str2是不是str1的子串

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

在z位置上配不上了,于是z位置往前跳,跳到next数组的下一个位置开始同s开始比对

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAUG5KZz8=,size_20,color_FFFFFF,t_70,g_se,x_16

 

 

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,判断结束。watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBQbkpnPw,size_20,color_FFFFFF,t_70,g_se,x_16

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBQbkpnPw,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkBQbkpnPw,size_19,color_FFFFFF,t_70,g_se,x_16 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值