本系列文章适合对象:
*想拿名企软件offer
*入门计算机算法竞赛
*了解一门语言c#/python/java/js(会写hello world,基本的if for等控制流程,知道函数调用的概念即可)
*了解基本的数据结构,如数组,列表(List)
*有一定时间(别笑 算法的思考有时以周为单位)
*想看美女的
一点建议
如果没有数据结构基础,准备好两本数据结构的书籍,这样可以随时翻阅,算法设计一般首先在纸上尝试写伪流程,确定算法大概框架,保持高效,定个时间,半小时上下,如果在这段时间内没有什么思路,那该把妹把妹去,该打球打球去,反正该干嘛干嘛,等过段时间或者明天再来。感觉算法框架差不多了上机实现细节,一定要一行行代码自己去敲下来,去尝试,哪怕一开始你写的算法‘慢丑胖’......如果3、5天还是没有什么思路,这时可以看一点答案分析,然后再次重复上述思考过程,最终能举一反三,做一题相当于做十题。很多人觉得这样浪费时间,但恰恰相反,这是比较高效的做法,因为每次你都给自己定了大概半小时的思考时间,如果不行,该干嘛干嘛,时间并没有浪费。只是周期长一点,这是算法本身的特点决定的。
从0到1的过程是最困难的,会花很多时间,但慢慢到后来你就会发现,很多同类型的题目基本上可以秒杀......
随着时间你的解题能力会慢慢积累达到一个惊喜的高度。
就像打怪升级一样,起点低没关系,成长总是有个过程的。
代码环境
visual studio 社区版(community) .Net C#控制台程序
内容包含
*回溯法 分支限界法 贪心算法系列
*面试经典系列
*算法竞赛入门系列
内容安排原则
尽量选择一些描述清晰,纯算法类型的主题,如回溯,分支限界,贪心系列的算法。
尽量避免和数学联系比较紧密的算法主题。
一个问题举一反三,以一挡十,把握本质。
美女上+美女下