你们初刷leetcode时会怀疑自己的智商吗?

当然正常,我当年做算法题的时候,又是画图,又是背题的,搞的也是头秃

后来才知道,这些完全可以避免

算法的难点在于,根本没办法在脑子里抽象出它的步骤

对于做个几何题都费劲的男孩子来说,那更是要了他的亲命了。

今天,我就给大家推荐几个算法可视化的网站。

没错,就是写了代码以后,可以看见他们是怎么一步步求出结果的。

1、https://visualgo.net/en

目前网站支持中文,印尼文,日文等多语言版本。

最关键的是,它几乎包含了所有算法!!!!

你们初刷leetcode时会怀疑自己的智商吗?_第1张图片

 

在搜索选项中你可以根据关键词查找到你想要的算法。

点进去一个具体的算法之后,会有两种方式的可视化呈现方式,一种是电子讲座模式,一种是示例模式。其中示例模式是以动画方式呈现,你可以控制动画的快进与倒退,电子讲座模式是以知识点讲解模式呈现,你可以手动控制页面的进度。两种方式都可以帮助你演示每个步骤的过程代码。

接下来我们演示一下冒泡排序的执行过程,如下图所示:

你们初刷leetcode时会怀疑自己的智商吗?_第2张图片

另外,你还可以创建一组自定义的数,然后让动画显示“你的算法”。

除此之外,还支持在线测试哟~

你们初刷leetcode时会怀疑自己的智商吗?_第3张图片

 

2、Algorithm Visualizer

在Algorithm Visualizer,大家可以很清楚的看到算法运行的整个过程,很直观,便于大家学习。你们初刷leetcode时会怀疑自己的智商吗?_第4张图片

 

大家可以很清楚的看到,网站分为三部分,最左边是算法目录,大家可以选择自己感兴趣的算法,目前已经包括了很多算法了,比如二叉树、图、排序算法、动态规划等等经典算法 。中间区域主要是算法演示以及运行log。右侧是代码以及算法运行按钮。

我们用它来演示一下冒泡排序的执行过程,如下图所示:

你们初刷leetcode时会怀疑自己的智商吗?_第5张图片

同时它是开源的,目前有35K个star,足以可见该项目的欢迎程度,这里推荐给要学习算法的各位。

3、Data Structure Visualization

目前已经有很多常用的数据结构与算法的可视化,如:常见的数组、链表、队列、二叉搜索树、红黑树、各种排序等,如下图所示:你们初刷leetcode时会怀疑自己的智商吗?_第6张图片

 

比如,我们用它来模拟一个二叉搜索树,如下图所示:

你们初刷leetcode时会怀疑自己的智商吗?_第7张图片

我们再用它来演示一下快速排序算法,如下图所示:

你们初刷leetcode时会怀疑自己的智商吗?_第8张图片

把这些内容学会,算法应该说是非常牢固了,无论是校招还是工作,都已经非常够用了。

三、怎么学习算法

我大学时候也很傻,为了校招,看了不下于五本算法书,加上LeetCode,刷了大半年。

总共一两千道题啊……不刷怕考到……忘了刷,刷了忘……毛都快掉没了……

现在工作近十年,辗转几个大厂,由当年的应试者变成了出题人,才知道,完全不必这么辛苦。

任何事情都遵循28原则,我们只要把握住那20%,就能拿到80分!

凡事都讲究性价比!

省下来的时间,谈个女朋友,它不香么???!!!

这里把我这些年的出题经验告诉大家,希望大家知道哪些是重点,应该怎么学数据结构和算法

直接上干货,我花了两天的时间做了一张图,涵盖数据结构和算法书籍中都会讲到的知识点。并给出了常用算法的平均时间复杂度,对于必须要学的内容前面加了星标

你们初刷leetcode时会怀疑自己的智商吗?_第9张图片

这里面涉及到了近二十种数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;超四十种常见算法思想:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

掌握了这些基础的数据结构和算法,再学更加复杂的数据结构和算法,就会非常容易、非常快。

你们初刷leetcode时会怀疑自己的智商吗?_第10张图片

 

学习算法的套路很简单,多看、多写、多上机,既然是思想的集合,看得多了,自然无师自通。

至于刷题,很多同学都知道要刷LeetCode。

LeetCode题库:(2123题)

题库 - 力扣 (LeetCode)​leetcode-cn.com/problemset/all/

你们初刷leetcode时会怀疑自己的智商吗?_第11张图片

总共两千多道题,而且有些题,非常难,就算每天10题,也至少刷半年。这显然不适合绝大部分同学。

所以,我们要找到最核心、最重要的题集,即可

在这里只需每天刷一集,只需两个月,你就可以成为算法大神!

推荐指数 5 颗星:※※※※※

视频教程—bilibili—  Leetcod核心刷题教程,思路更重要

你们初刷leetcode时会怀疑自己的智商吗?_第12张图片

计算机组成原理

组成原理应该是所有课程里最难的课了,它是一门衔接数电和汇编的一门课。整个课程的核心就是使用数字逻辑电路和触发器搭建一个可以运行汇编指令的机器.

单纯看书、看视频的学习,会极其枯燥,必须搭配实验性小游戏,才更容易理解并坚持下去。

好了,这篇就到这了,希望大家毕业都能找到好工作。

你可能感兴趣的:(Java,架构,程序人生,算法,数据结构)