我辅导表妹学算法……
Posted 我是springmeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我辅导表妹学算法……相关的知识,希望对你有一定的参考价值。
表妹是大三的,计算机专业,985名校,妥妥的学霸一枚。
昨天过来,问我一些算法的相关的问题。
小孟硕士时研究的是文本算法的,聚类、协同过滤、深度学习、机器学习等的都搞过,毕业后的第一份offer其实是DataMaining的。
不仅表妹对学习算法有一定的苦恼,平时很多粉丝朋友对于如何搞算法也很苦恼。
大家如果想转行做算法的工作,最好和做做法的一些朋友聊聊。当然,我的表妹也有些困扰。
表妹: 表哥,算法和程序有啥区别?
小孟:程序是实现系统开发或者算法的工具,是语言,例如Java、C++、Python等,算法的核心是思想,数据结构学了吧,数据结构中就有很多的算法,例如枚举、递归、冒泡、排序等,再往后就有高深的算法了,例如推荐算法、人脸识别算法、情感分析算法等。但是算法的本质是数学(高数、线性代数、概率统计),如果你数学学不好,一定进行不下去。
表妹:需要用特定的语言学习算法吗?
小孟:不用,语言只是工具,例如我原来搞得深度学习算法,你用java可以实现,你也可以用python实现,当然python实现可能更简单些。对于大多数的算法,例如你学习的数据结构的,你可以用Java实现,也可以用C++实现。
表妹:我数据结构已经学的差不多了,应该继续学习其他算法吗?
小孟:是吗?你讲讲什么是贪心算法,什么是哈希算法?
表妹:贪心算法一般按如下步骤进行,贪心算法首先是建立数学模型来描述问题。然后把求解的问题分成若干个子问题。对每个子问题求解,得到子问题的局部最优解 。把子问题的解局部最优解合成原来解问题的一个解。哈希算法就是将任意长度的二进制值映射为固定长度的二进制串,这个映射的规则就是哈希算法,原始数据映射之后得到的二进制哈希值。
表妹:硕士是不是主要是搞算法的?老师想让我直接申请本校的硕士。
小孟:可以,本科毕业后做算法的少,硕士毕业做算法的多。我看好人工智能和数据挖掘的方向,现在的数据挖掘也都很成熟了,例如和电商结合,和药学结合等行业,你浏览各个网页的时候,你再去电商平台买东西就会根据你浏览的数据,推荐你要买的东西,这就是数据挖掘中的推荐算法。还有很多的行业和深度学习、神经网络进行结合。入门的话,你先百度了解下。你真的想从事这方面的的话,我去外文文献网站,给你下载下DataMaining的Paper,你感受下。
小孟:如果你想找工作学习算法,我发你份资料:LeetCode,你去学习这个就可以了。
表妹:LeetCode,我听说过,一直没有开始。这个该如何学习呢?
小孟:好,我们打开文档,看下。这里有Java版的,有C++版的,你看Java版的即可。前面的比较easy,按顺序来,后面的话难度高些,如果遇到特别困难的,先跨过去。先慢慢培养算法的思维,这个比你看多少算法重要的多的多。
表妹:我想再借助一些书,看一下,有推荐的吗?
小孟:《剑指 offer》《编程珠玑》《编程之美》,都灰常经典的。
表妹:有什么快速进步的方法吗?
小孟:快速的方法,就是不断的刷题,当然如果你需要你的基本功非常的扎实,什么是基本功?就是数据结构,递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。这些需要你非常的熟悉。你再看其他的,会很快。 你先看着LeetCode。看完之后,每天晚上回顾下,最后自己能写出来。
当然,小孟也不只辅导表妹学习,好东西和爱学习编程的朋友们一起分享。
这个资料是一位阿里大佬霜神(halfrost@github)写的 LeetCode刷题笔记。
这个排版简直Nice:
每一个章节先讲概念和框架,然后进行实战演练,这种方式真的是学习的好帮手!
每一道题还有详细完整的解题思路,就怕你看不懂,就怕你学不会。不得不感叹:大神贴心!
不管你是应届找工作还是工作几年想加强算法、数据结构,这本书都是最佳选择!
孟哥已经把书下载好了,小伙伴可以在我公中号【在CSDN首页】后台回复:
leetcode
获取(无任何套路,不加密,有需自取)
笔记版权归原作者所有,请注明出处 https://books.halfrost.com/leetcode/
以上是关于我辅导表妹学算法……的主要内容,如果未能解决你的问题,请参考以下文章
表妹问我一道大一算法题,想半天不知道怎么以简单点的方式帮她解决。。。,最后看到答案很惭愧。