前言
最近抖音上很多人私信我,询问如何学好算法。我的方法是我用了 十年 的时间,自己总结出来的,不可能适合所有人,但是我觉得挺有效的,如果你觉得可行,尽管一试!
首先,我们心中要有一团火,一团希望之火!就是告诉自己,一定可以!
你永远无法弥补你的过去,但是,你可以改变你的未来!就算暗淡无光的尘土,也会有爆发光芒的那一刻!抓住那尘埃中的刹那光辉,燃烧自己吧!
一、树立目标
给自己树立一个「 目标 」是非常重要的,有「 目标 」才会有「 方向 」,有「 目标 」才会有「 动力 」,有「 目标 」才会有「 人生的意义 」。有了「 目标 」,再做一定的「 规划 」,并且「 坚持 」做下去,我相信,「 成功的一天终会到来 」。
目标可以是:刷一万道题、学会一百个算法、拿到字节的 offer、年入百万 等等,因人而异,当然,不建议以 财务自由 作为目标,因为每个人对 财务自由 的定义不同。
二、如何开始
我不是很推崇从一开始就看 《算法导论》 这样的天书,没错,对于初学者而言,这就是天书。在对算法没有任何概念的情况,看书并不是一个明智的选择。
那么问题来了,不看书,我们看什么呢?
第一阶段我是这么规划的:
1)挑一门自己想学习的语言;
2)零基础情况下,把 50 个简单题先刷掉;
3)遇到不会的,先想10分钟,想不出来看「 解题报告 」;
4)看完后一定要自己敲一遍,并且放到重刷列表;
5)重新刷之前 50 个题里面你看了「 解题报告 」的题;
接下来才是本文的重点内容。
文章目录
- 前言
- 一、树立目标
- 二、如何开始
- 三、找到组织
- 四、零基础算法
-
- 1、求1+2+…+n
- 2、递归乘法
- 3、斐波那契数
- 4、n 的第 k 个因子
- 5、统计平方和三元组的数目
- 6、找出数组的最大公约数
- 7、最大三角形面积
- 8、数组异或操作
- 9、整数的各位积和之差
- 10、统计位数为偶数的数字
- 11、搜索旋转排序数组
- 12、差的绝对值为 K 的数对数目
- 13、宝石与石头
- 14、所有奇数长度子数组的和
- 15、缺失的第一个正数
- 16、排序数组
- 17、根据字符出现频率排序
- 18、二进制链表转整数
- 19、K 进制表示下的各位数字总和
- 20、各位相加
- 21、七进制数
- 22、数字转换为十六进制数
- 23、数组串联
- 24、重新排列数组
- 25、打印从1到最大的n位数
- 26、一维数组的动态和
- 27、有多少小于当前数字的数字
- 28、找出所有子集的异或总和再求和
- 29、解码异或后的数组
- 30、交换数字
- 31、位1的个数
- 32、数字范围按位与