第二十七天:算法和数据结构
今天是释然发题解的第二十七天,以后每一天都会和大家分享学习路上的心得,希望和大家一起进步,一起享受coding的乐趣
本文约1600字,预计阅读5分钟
昨天我们学习了二叉树,忘记的小伙伴们可以看一下哦:
今天我们来聊一聊算法和数据结构,明天和大家分享线段树问题的相关题目:
算法和数据结构
面试中的高频考点
废话不多说,直接上图…别问,问就是偷的
其中考频率最高的是:
拓扑排序和二分查找
排名第二的是:
哈希表和二叉查找树
排名第三的是:
动态规划算法,这个算法实在是太难了,确实需要不断地练习才能够掌握,后续还需要多多刷这方面的题目
排民第四的是:
分治、堆
排名第五的是:
贪心、最小生成树、字典树、并查集
其实,重要的知识多少都会涉及,所以该掌握的还是要掌握,这和也只能参考一下。
什么是算法和数据结构?
基础的十大算法包括:
递归、排序、二分查找、搜索、哈希、贪心、分治、回溯、动态规划算法、字符串匹配算法(KMP)
基础的十大数据结构包括:
数组、链表、散列表、跳跃表、栈、队列、图、树、堆、Trie树
如何学习?
我非科班出身,当初其实不想报计算机的原因就是觉得计算机竞争压力太大,自己想去学一门其它的学科而且5G时代的到来也不知道会不会有什么大的变革。
我学的是算法,其实也就是为了去打打程序设计竞赛的,我很感谢我的一位同学带我入门,我觉得学习的最好办法就是看书了
基础的语法我的建议是这个网站:
菜鸟教程
传送门
基本上所有的语言入门都可以在这里找到,我觉得特别棒,感谢它让我入门了:Python,java,HTML5,CSS,JS和TS,真的非常棒,对了还有C++/C/C#
看书的话:我特别喜欢**《编程之美》**,作者应该是微软亚洲研究院的面试组长,写的一本非诚详细并且经典的面试书籍,它启发我们能够不断创新地去解决问题。任何问题,我觉得都需要启发性的思考,才能不断地进步。
还有就是推荐《数据结构和算法分析》,这本书非常系统、全面、严谨,而且又是特别难,适合对数据结构和算法有些了解,并且掌握了至少一门编程语言的同学。而且,这个作者也很用心。他用了三种语言,写了三个版本,分别是:《数据结构与算法分析 :C 语言描述》《数据结构与算法分析:C++ 描述》《数据结构与算法分析:Java 语言描述》。
刷题的话我觉得:LeetCode和coodeforces特别好,很经典也很高效,代码也是开放的,没用的题也很少,并且每周会有周赛,能够刷自己的积分,其实已经非常可观得反应自己的实力了
好了,今天的算法和数据结构就到这里。
释然每天发布一点自己学习的知识,希望2年后我们也能在ACM的赛场上见面,一起去追寻自己的程序猿之路吧!
后期也会和大家一起分享学习心得和学习经验呢,明天我们不见不散哦!
下期预告:
二叉树的中序遍历
如果大家有什么建议或者要求请后台留言,释然也想和大家一起进步呀!
联系方式:[email protected]