专栏名称: 吴师兄学算法
和程序员小吴一起从初学者的角度学习算法,以动画的形式呈现解题的思路。每周四篇原创文章,期待你的鉴赏!
目录
相关文章推荐
直播海南  ·  琼中发布情况通报 ·  昨天  
直播海南  ·  突发!两艘船只相撞,已致2人死亡! ·  3 天前  
51好读  ›  专栏  ›  吴师兄学算法

你离攻克数据结构与算法,只差这一步

吴师兄学算法  · 公众号  ·  · 2019-09-23 08:48

正文

一年前,我去鹅厂面试Java中级开发人员。 一面的时候我的评分还不错,甚至我一度以为自己要成功进阶鹅厂了。 其实二面表现还可以, 但万万没想到会在栽在数据结构与算法 当时面试官问我: 输入一个单向链表,判断链表是否有环。 如果链表存在环,如何找到环的入口点?


我承认这题不难,但我当时有点懵,因为从来没有注意过算法这方面的学习。 但经过一年的成长,现在我已经进了另外一个大厂。 我一直觉得这份经历对我的技术生涯很重要,甚至改变了我未来的规划。 因此,我分享给大家。


如果你一直做底层程序员,很多东西你都不需要, 就像买菜不需要用微积分一样 但假如你未来想在技术方面精进一些,就要有意识的去学习,其中数据结构与算法是你必须要熟练掌握的技术之一。


其实学习数据结构与算法的重点并不在于刷题或者理解别人口中的数据结构, 关键是理解几种数据结构存在的目的,和他们之间的区别


数据结构这门学科就是为了让计算机能够以更加高效、简单、便捷的方式来存储和使用数据而产生的。 所有的目标都围绕着存和取打转。 在这两个目标下,有几个评估的指标,存取效率,可扩展性,顺序性,可排序性这几个特征。


总之,数据结构的学习要重理解,以倒推的方式,搞清楚每种数据结构产生的目标。有人带着你是最有效的办法,但大多数人没有这个机会。下面给大家推荐腾讯课堂联合图灵学院推出的 2分钱 课程 《数据结构与算法》 ,让你在金九银十面试季脱颖而出。


当你学完了这门课程,可以看看以下自测题,学会了多少。


  • 在一次遍历中,怎样发现单个链表的中间元素?

  • 怎样验证给定的链表是环形的? 怎样发现这个环的起始节点?

  • 怎样翻转链表?

  • 不使用递归,怎样反转单个链表?

  • 在未排序链表中,怎样移除重复的节点?

  • 怎样找出单个链表的长度?

  • 从单个链表的结尾处,怎样找出链表的第三个节点?

  • 怎样使用栈计算两个链表的和?

  • 合并排序算法是如何实现的?

  • 桶排序算法是如何实现的?

  • 计数排序算法是如何实现的?







请到「今天看啥」查看全文