导读

曾几何时学好数据结构与算法是我们从事计算机相关工作的基本前提,然而现在很多程序员从事的工作都是在用高级程序设计语言(如Java)开发业务代码,久而久之,对于数据结构和算法就变得有些陌生了,由于长年累月的码砖的缘故,导致我们都快没有这方面的意识了,虽然这种论断对于一些平时特别注重学习和思考的人来说不太适用,但的确是有这样的一个现象。

而在要出去面试找工作的时候,才发现这些基础都快忘光光了,所以可能就“杯具”了!实际上,对于数据结构和算法相关的知识点的学习,是程序员必须修炼的一门内功,而要掌握得比较牢靠除了需要在写代码的时候时刻保持这方面的意识外,也需要日常的训练,换一个目前比较流行的词叫刻意练习

这就像打乒乓球一样,虽然大家都会打,但是要打得好,打出水准就得经常训练。而学习算法的过程也是这样,因为大部分人的脑容量有限,对于学过的算法知识虽然之前理解过,但是因为时间的关系和算法本身就是比较抽象的一种知识,所以容易忘记。那么有没有什么好的练习工具呢?

在这里给大家推荐一个练习数据结构和算法编程的网站:

https://leetcode.com(因为墙的原因,你可能需要搭个梯子,或者也可以访问中文版的网站)这是一个目前很多硅谷的公司或程序员在学习或者招聘时都在使用的在线练习网站。上面有很多数据结构和算法的题,可以选择不同的编程语言实现,还支持代码社交,你提交的代码可以被全世界的程序员看到并被评论,从而得到相应地反馈。

以本文将要讲述的二分查找算法为例,在给大家的代码示例中作者就在这个网站上使用Java/Go/Python三种语言进行了实现,如

最新文章

  1. CSS书写规范
  2. SDN跟网络虚拟化的完美结合
  3. vi-11
  4. [软件推荐]转换html到chm的软件,winchm pro
  5. 【原创】只用 HTML / CSS 画出一把 UKULELE(夏威夷四弦吉他)
  6. 使用List,Dictionary加载数据库中的数据
  7. hdu4612-Warm up(边的双连通分量)
  8. YII2框架动态创建表模型
  9. 【学习总结】GirlsInAI ML-diary day-13-Try/Except 异常处理
  10. linux中MTDflash设备驱动大概
  11. MPU和CPU有什么区别?
  12. Deepin系统安装mysql教程及相关操作
  13. 如何在Windows资源管理器右键菜单中 添加CMD
  14. Python编码处理和文件路径处理
  15. go语言使用go-sciter创建桌面应用(三) 事件处理,函数与方法定义,go与tiscript之间相互调用
  16. 更换网页tab标题图标
  17. eclipse JAVA反编译
  18. nginx新建nginx_fzjh.conf文件,不使用默认配置文件
  19. 关于iOS Category实现添加属性及成员变量
  20. 深度学习(八) Batch Normalization

热门文章

  1. 将bean转换成XML字符串
  2. Ubuntu学习之路
  3. CSS基础一
  4. 01 C语言程序设计--01 C语言基础--第1章 C语言概述&第2章 GCC和GDB
  5. k8s storageClass对接nfs
  6. PHP与Excel 笔记
  7. BFS总结
  8. python之路(十一)-socke开发
  9. IDEA教程
  10. 生成二维码图片(tp3.2)