22/04/03本周总结

本周总结

本周学习内容

这一整个星期都在刷算法学习视频,基本上算是把我从前学的算法知识点都给复习了一遍,也新学了一些东西,比如:
贪心常见的问题(思路简单,证明困难):

区间选点/最大不相交区间:将区间按照右端点进行排序,然后依次比较本区间右端点和下一区间左端点,更新右端点。

区间分组:将区间按照左端点进行排序,从前往后处理每个区间,判断能否将其放到已有区间,若无法放到已有区间,则新开一个区间。

区间覆盖:将区间按照左端点进行排序,依次枚举区间,选择右端点最大的区间并将目标区间的左端点更新为该右端点。

合并果子:构造哈夫曼树,使权重最大的果子距离根节点最近。

还有字符串子串匹配问题(KMP),实际上是对暴力匹配的优化,将字串自身的重复部分预处理出来,然后减少暴力匹配中无效的匹配步骤,模板如下:

// s[]是长文本,p[]是模式串,n是s的长度,m是p的长度
//求模式串的Next数组:
for (int i = 2, j = 0; i <= m; i ++ ){
    while (j && p[i] != p[j + 1]) j = ne[j];
    if (p[i] == p[j + 1]) j ++ ;
    ne[i] = j;
}

// 匹配
for (int i = 1, j = 0; i <= n; i ++ ){
    while (j && s[i] != p[j + 1]) j = ne[j];
    if (s[i] == p[j + 1]) j ++ ;
    if (j == m){
        j = ne[j];
    }
}

本周心态

因为蓝桥杯吧,还是比较焦虑的,感觉自己啥都不会,然后又捐款一次报名费……
本周就是主要复习思路重点,下周要干的事就是记常见函数,常见模板,刷刷题,补补题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值