大家都知道,现在的IT行业非常的卷,都卷成啥样了,本来科班的人就很多进入了计算机行业,还有其他的专业不断的往IT行业涌入,例如生化环材一些天坑专业。
所以现在的计算机培训机构才异常的火爆!很多机构几个月竟然能把一个非科班专业的学生包装成一两年经验的开发者。
但是很多包装的学生,面试是比较猛,但是入职了无法干活。
这让公司很难受!现在不只是大厂要考算法,很多种小公司都开始跟风了!
所以,不管你是去大厂还是小厂,算法必须要刷!特别是去大厂,《剑指offer》不刷个两三遍,leetcode不刷个八九百道题以上,真的别去碰灰!
会个简单的排序、递归不叫懂算法!
当然有很多朋友说:面试造火箭,工作拧螺丝!
当然这个是现状,即便是大厂,很多工作都是CRUD,但是首先你得进去啊!
在小孟看来,搞算法绝对不是为了面试造火箭,而是一个程序员的根基!
本文章和小伙伴们聊聊算法!废话不多说,直接上干货!
目录
一,算法的作用
=======
数据结构和算法是一种思路,例图调优、性能优化都起着很重要的作用。
原来给一个商家开发了一个商城系统,有次他搞了一个秒杀活动,结果用户数据保证10倍,一下就404了。
这时候就需要调优,得计算时间复杂度吧,这得用算法了吧。
在小孟读研的时候,我主要研究的是数据挖掘,然后有各种算法,什么K-means、协同过滤,会面又出现了神经网络、深度神经网络。
包括现在的某宝、某因能够精确的把控用户的行为特征,都是先抓取用户行为数据或者标签,然后训练模型,然后再用算法处理!最后进行推荐,不断推荐你喜欢的视频或者商品。
这就是算法的强大之处!
二,算法书籍推荐
========
有不少博主上来就推荐学《算法导论》,我真tm想打他,你确定刚开始看这样的书,不会崩溃?读者能吸收多少?
小孟给推荐几本:
1,《**算法图解》:**这是一本“像小说一样有趣的算法入门书”,看这本书能让你非常舒适的了解到基本的计算机算法,轻松愉快把基础知识学完了,但是注意,了解基础算法远远不够哦。
2,**《剑指 offer》**这个不用具体说了吧,几乎所有同学都知道该准备这本书的。
3,**《编程之美》**这本书罗列的算法相较而言比第一本书要难一些,但是更系统,如果你想面试国外的互联网技术岗位,那么这本书非常适合你。
三,如何刷题
======
1,先从简单的开始,从通过率的高的刷起,可以从LeetBook刷起。难度一定要不断的递进。
2,开始不要看代码,多思考!
3,多思考,多优化。
4,代码实现,用java实现或者C++可以实现。
四,数据结构学习路线
==============
数据结构学习路线,我好朋友启舰整理的。大家学习数据结构的路线图去学习,星号是重要的意思。
五,刷题整理
======
刷题最好还是一个类型的刷,而不是随意的刷。下面整理了各个类型的题,还在不断更新中,建议点赞、收藏本文,不然刷着刷着就没了!
**数据结构
数组&双指针**
链表
1. LeetCode 19. 删除链表的倒数第 N 个结点
队列&栈
哈希表
二叉树
5. LeetCode 105. 从前序与中序遍历序列构造二叉树
二叉搜索树
**算法
模拟**
贪心
2. LeetCode 714. 买卖股票的最佳时机含手续费
二分
2. LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
递归&回溯
深度优先搜索DFS
宽度优先搜索BFS
Manacher算法
字典树Trie
2. LeetCode 208. 实现 Trie (前缀树)")
动态规划
最短路算法