为什么要来学习算法?写在英雄的5月集训月末
一、引言
“12月,当我站在滑雪场的山顶,风又大又冷,坡又陡又弯,问自己,今天为什么要来滑雪?”
5月,这一天的算法又长又抽象,对应的题目又多又困难,那为什么要来学习算法、刷题呢?
因为兴趣,这是自我决定论中的第一步。
它的契机可能是为了面试,但它的目的绝不止于面试。而一件值得坚持的事,有时也需要缘分,让我们遇到能指引我们的人、能一起抱团的人。
二、找寻引导
有一个B站UP,他说话逗比,他实力过硬,他是ACM全国金牌,他年过30岁出来将算法的金针度于你。
他的B站名为:英雄哪里出来。我称他为英雄。
三、刷题能切实增强工作能力
力扣等Online Judge的“拒绝”其实反映了工作中最常见的错误
Compile Error 编译错
公司里面总有人把编译错误的代码提上来,固然现代git仓库带有钩子做检查,但自己不应小心么?别人拉完代码,挂了,很丢人的。
Runtime Error 运行错
a) 真RE / panic
工作中常见,不是说整体套一个recover就完事儿了。应该认真想清楚为什么算法会panic。
b) Out of Memory 内存超限
学了算法和数据结构你才对内存有“稍微深入一点的认知”。时空平衡,是程序员永远的话题。
Wrong Answer 结果错
工作中达成目标的路径有很多,有时有最优解、有时有次优解;但WA则是说,不满足目标,可能是边界问题、也可能是对工作目标理解有问题,这个反馈可能来自你的QA、PM、经理,那么虚心接受。
Output Limit Exceeded 输出过多
是不是想起了,写文件、写日志,把磁盘打爆的时刻?
Time Limit Exceeded 超时
我们都是先解决问题再考虑性能优化,工作中,500 QPS可能打不死你的服务。但有一天做了一个活动,瞬时QPS来了2w,你发现:php fpm不够了,上下游疯狂超时,DB load飙升了,消息队列堵了,哪哪哪儿不对。
可能就是因为一个算法的性能不足。所以,是不是要重视TLE起来呢?
// 示例
func twoSum(nums []int, target int) []int {var i intvar a [][]int// for i<10 {for { // TLEi /= i // RE: panici++fmt.Println("i:", i) // OLEa = append(a, make([]int, i)) // RE: OOM}return []int{i} // WA
}
四、如何面对“困难”知识的学习?
降阶
降阶很重要,和循序渐进是一个意思;也就是说,今天“图”我看不懂,那么是先去把“深搜”看了。
好了,是不是今天不仅要学“图”,还要学“深搜”,要学的东西反而变多了?不然,无法达到我们今天可能必须要解决一个“图”的问题之目的。
先解决问题,再考虑优化
我再给你讲一个和降阶不一样的:“今天学一半,即先把低处的果子摘了”。
俗话说,没有观测就没有优化。
307. 区域和检索 - 数组可修改 这题目要用线段树,不用就是1228ms,用了就是508ms。
今天先把题解了,但我不需要学容量不确定线段树的插入、Lazy-tag。
五、逆水行舟,不进则退,慢进也退
未来还需加油,按计划推进:基础算法、专业算法、工程实践、架构框架、领域设计。
六、一起学习,变得更强
如果你需要进英雄的星球,参加6月的集训,请用我推荐码。进入星球后截图告诉我。
1. 发你一个79.8元我的分成红包以兹鼓励。
2. 拉你进英雄的星球核心群。
3. 给你做一个“社牛”欢迎:)
为什么要来学习算法?写在英雄的5月集训月末相关推荐
- android 绘制歌词算法,深度学习算法写歌词
AI开发平台ModelArts ModelArts是面向开发者的一站式AI开发平台,为机器学习与深度学习提供海量数据预处理及半自动化标注.大规模分布式Training.自动化模型生成,及端-边-云模型 ...
- 数据结构+算法+c++学习(写在前面)
本篇开始将开始更新算法方面的博客,其实应该是数据结构更多一些,我不知道大家是如何学习算法和数据结构的,就我目前的学习情况,简单的和大家说一下感受.本人研一时学校开设了算法这门课程,当时上这门课时也很用 ...
- 【新星计划·第三季】一篇关于学习算法和写博客的心得和经验
⭐️引言⭐️ 大家好啊,我是执梗.最近新星计划第三季又新开了赛道,目的在于帮助想写博客的小白更好的融入CSDN这个大家庭.我是本季[算法]赛道的导师,所以针对学习算法以及如何写好算法博客提出一些我自己 ...
- 写给大家看的机器学习书【Part3】直观易懂的感知机学习算法PLA
作者:徐晗曦 原文:写给大家看的机器学习书(第三篇) 本次转载已获得作者授权,尊重原创,若需转载请联系作者本人. 相关文章: 写给大家看的机器学习书[Part1]什么是机器学习?机器学到的到底是什么? ...
- 深入浅出排序学习:写给程序员的算法系统开发实践
引言 我们正处在一个知识爆炸的时代,伴随着信息量的剧增和人工智能的蓬勃发展,互联网公司越发具有强烈的个性化.智能化信息展示的需求.而信息展示个性化的典型应用主要包括搜索列表.推荐列表.广告展示等等. ...
- 【转】听说你了解深度学习最常用的学习算法:Adam优化算法?
深度学习常常需要大量的时间和机算资源进行训练,这也是困扰深度学习算法开发的重大原因.虽然我们可以采用分布式并行训练加速模型的学习,但所需的计算资源并没有丝毫减少.而唯有需要资源更少.令模型收敛更快的最 ...
- 大话卷积神经网络CNN,小白也能看懂的深度学习算法教程,全程干货建议收藏!...
来源 | 程序员管小亮 本文创作的主要目的,是对时下最火最流行的深度学习算法的基础知识做一个简介,作者看过许多教程,感觉对小白不是特别友好,尤其是在踩过好多坑之后,于是便有了写这篇文章的想法. 由于文 ...
- 通俗讲解集成学习算法!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:黄星源,Datawhale优秀学习者 本文以图文的形式对模型算法中 ...
- 目前最好用的大规模强化学习算法训练库是什么?
点击蓝字 关注我们 本文整理自知乎问答,仅用于学术分享,著作权归作者所有.如有侵权,请联系后台作删文处理. 本文精选知乎问题"目前最好用的大规模强化学习算法训练库是什么?"评论区 ...
- 机器学习 | 基础通俗讲解集成学习算法!
来源:Datawhale 本文约6000字,建议阅读10+分钟 本文以图文的形式对模型算法中的集成学习,以及对集中学习在深度学习中的应用进行了详细解读. 标签:机器学习 数据及背景 阿里天池-零基础入 ...
最新文章
- 跨域产生的原因及解决方法
- 跨域加了header也解决不了?
- 亚马逊手机端测评软件/PC端测评软件各有什么优缺点?
- 2013年第四届蓝桥杯C/C++ A组国赛 —— 第三题:埃及分数
- ConcurrentHashMap的源码分析-put方法第四个阶段
- 不常见但是有用的 Chrome 调试技巧
- mysql属于数据库三级模式_数据库系统的三级模式指的是什么
- mysql身份验证失败_SMTP身份验证失败PAM-MySQL无法进行身份验证
- java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】...
- PHP自定义状态码数组
- PGP加密软件使用教程-云安全技术
- 精准医学:循环肿瘤DNA在检测非小细胞肺癌患者体细胞突变及跟踪肿瘤进展中的作用|精准治疗
- B 1002 写出这个数(简单字符串处理)
- GNSS数据处理(一)——开源GNSS数据处理软件介绍
- 后门程序技术知识全面深解
- “在XML文件中给代码加注释”请注意注释的位置
- 服务器系统解决方案,服务器操作系统解决方案
- android 方向控件 MenuView 上下左右,东南西北
- 计算机电路英文专业翻释术语,电子专业词汇翻译中英文对照(新手必备知识)
- Android开发 报错: xxx does not have a NavController set on xxx