算法提升

作为一名准软件开发工程师,算法当然是必须要研究探索的东西。为了算法能力得到更好的提升,博主开始在leedcode上刷题。在leedcode上,我按照标签分类的顺序锻炼自己每一部分的能力。标签分类如下图:

算法提升_第1张图片

介于数学对算法的重要性,我先是对“数学”进行学习。每天三道,从简单题刷起,一点一点总结。希望可以对自学算法的小伙伴有用处。

数学

第一周: 答案:2020-09-06 — 2020-09-13

2020-09-06
第一题: 十进制整数的反码
第二题:最小移动次数使数组元素相等
第三题:最少移动次数使数组元素相等 II
2020-09-07
第一题:错误的集合
2020-09-09
第一题:二进制间距
第二题:好数对的数目
第三题:缺失数字
2020-09-10
第一题:阶乘后的零
第二题:计数质数
第三题:Excel表列序号
2020-09-11
第一题:增减字符串匹配
第二题:一年中的第几天
第三题:最大数值
2020-09-12
第一题:在区间范围内统计奇数数目
第二题:丑数
第三题:缀点成线
第四题:将整数转换为两个无零整数的和
2020-09-13
第一题:最大三角形面积
第二题:打印从1到最大的n位数
第三题:各位相加

第二周:2020-09-14 — 2020-09-20

2020-09-14
第一题:2的幂
第二题:除数博弈
第三题:整数的各位积和之差
2020-09-15
第一题:排列硬币
第二题:有效的回旋镖
第三题:平方数之和
2020-09-16
第一题:最小差值 I
第二题:完美数
第三题:三个数的最大乘积
2020-09-18
第一题:矩形重叠
第二题:分糖果 II
第三题:有效的完全平方数
2020-09-19
第一题:质数排列
第二题:6 和 9 组成的最大数字
第三题:自除数
2020-09-20
第一题:玩筹码
第二题:三角形的最大周长
第三题:3的幂

第三周 2020-09-21 – 2020-09-27

2020-09-21
强整数
Excel表列名称
范围求和 II
2020-09-22
快乐数
三维形体投影面积
三维形体的表面积

递归

2020-09-23
斐波那契数列
青蛙跳台阶问题
第 N 个泰波那契数
汉诺塔问题

位运算

2020-09-24
数组异或操作
数字转换为十六进制数
2020-09-25
插入
两整数之和
位1的个数
汉明距离
二进制中1的个数
将数字变成 0 的操作次数
2020-09-26
4的幂
不用加号的加法
配对交换
整数转换
交替位二进制数
2020-09-27
颠倒二进制位
二进制表示中质数个计算置位
翻转数位

第四周 2020-09-28 – 2020-10-4

数组

2020-09-28
去掉最低工资和最高工资后的工资平均值
重新排列字符串
距离顺序排列矩阵单元格
2020-09-29
存在连续三个奇数的数组
转置矩阵
所有奇数长度子数组的和
杨辉三角
杨辉三角 II
2020-09-30
一维数组的动态和
拥有最多糖果的孩子
重新排列数组
解压缩编码列表
按既定顺序创建目标数组
统计位数为偶数的数字
访问所有点的最小时间
矩阵对角线元素的和
在既定时间做作业的学生人数
统计好三元组
数组中两元素的最大乘积
将每个元素替换为右侧最大元素
2020-10-01
翻转图像
奇数值单元格的数目
和为零的N个唯一整数
通过翻转子数组使两个数组相等
高度检查器
判断能否形成等差数列
判定字符是否唯一
矩阵中的幸运数
数组拆分 I
商品折扣后的最终价格
两个数组间的距离值
按奇偶排序数组
2020-10-02
可以被一步捕获的棋子数
找出数组中的幸运数
二进制矩阵中的特殊位置
托普利茨矩阵
斐波那契数
统计最大组的数目
重塑矩阵
一周中的第几天
有序数组中出现次数超过25%的元素
找到所有数组中消失的数字
查询后的偶数和
二维网格迁移
2020-10-03
公交站间的距离
复写零
圆形赛道上经过次数最多的扇区
最大连续1的个数
公平的糖果交换
非递减数列
2020-10-04
找出井字棋的获胜者
至少是其他数字两倍的最大数
最短无序连续子数组
寻找数组的中心索引
最长连续递增序列
逐步求和得到正数的最小值
数组序号转换
最小绝对差
数组的相对排序

第五周 2020-10-05 ---- 2020-10-11

2020-10-05
检查整数及其两倍数是否存在
数组形式的整数加法
重复至少 K 次且长度为 M 的模式
第三大的数
单调数列
特殊数组的特征值
有效的山脉数组
子数组最大平均数 I
珠玑妙算
2020-10-06
旋转数组
1比特与2比特字符
顺时针打印矩阵
总持续时间可被 60 整除的歌曲
数组的度
较大分组的位置
等价多米诺骨牌对的数量
可被 5 整除的二进制前缀
将数组分成和相等的三个部分

字符串

2020-10-07
#434 字符串中的单词数
#917 仅仅反转字母
#859 亲密字符串
#1374 生成每种字符都是奇数个的字符串
#面试题 01.06 字符串压缩
#1370 上升下降字符
#1576 替换所有的问号
2020-10-08
旅行终点站
反转字符串
赎金信
旋转数字
数组中的字符串匹配
唯一摩尔斯密码词
连续字符
反转字符串 II
左旋转字符串
比较字符串最小字母出现频次
转换成小写字母
字符串相加
2020-10-09
URL化
验证回文字符串 Ⅱ
字符串轮转
分割字符串的最大得分
IP 地址无效化
字符串的最大公因子
转变日期格式
特殊等价字符串组
检测大写字母
机器人能否返回原点
解码字母到整数映射
2020-10-10
最常见的单词
重新格式化字符串
千位分隔数
山羊拉丁文
学生出勤记录 I
判断路径是否相交
删除回文子序列
独特的电子邮件地址
检查单词是否为句中其他单词的前缀
翻转单词顺序
重新排列单词间的空格
判定是否互为字符重排
2020-10-11
重新排列日志文件

哈希表

有多少小于当前数字的数字
岛屿的周长
只出现一次的数字
两句话中的不常见单词
宝石与石头
键盘行
独一无二的出现次数
重复 N 次的元素
回旋镖的数量

第六周: 2020-10-12 —2020-10-18

2020-10-12
拼写单词
字符串中的第一个唯一字符
第一个只出现一次的字符
第 k 个缺失的正整数
找不同
验证外星语词典
两个列表的最小索引总和
存在重复元素
回文排列
最长和谐子序列
有效的字母异位词
最长回文串
2020-10-13
存在重复元素 II
查找常用字符
“气球” 的最大数量
同构字符串
分糖果
最短补全词
子域名访问计数
数组中重复的数字
Bigram 分词
单词规律
2020-10-14

贪心

非递增顺序的最小子序列
分割平衡字符串
换酒问题
K 次取反后最大化的数组和
模拟行走机器人
删列造序
分发饼干
2020-10-15

二分查找

剑指 Offer 53 - II. 0~n-1中缺失的数字
剑指 Offer 53 - I. 在排序数组中查找数字 I
二分查找
寻找比目标字母大的最小字母
稀疏数组搜索
旋转数组的最小数字
方阵中战斗力最弱的 K 行
山脉数组的峰顶索引
猜数字大小
魔术索引
第一个错误的版本
统计有序矩阵中的负数
2020-10-16

双指针

二维数组中的查找
反转字符串中的元音字母
有序数组的平方
长按键入
验证回文串
移动零
两数之和 II - 输入有序数组
两个数组的交集
两个数组的交集 II
合并排序的数组
2020-10-17

链表

面试题 02.02. 返回倒数第 k 个节点
剑指 Offer 22. 链表中倒数第k个节点
链表的中间结点
剑指 Offer 06. 从尾到头打印链表
面试题 02.03. 删除中间节点
删除链表中的节点
剑指 Offer 18. 删除链表的节点
删除排序链表中的重复元素
移除链表元素
移除重复节点
合并两个有序链表
2020-10-18
回文链表
反转链表
面试题 02.07. 链表相交
相交链表
剑指 Offer 52. 两个链表的第一个公共节点
二进制链表转整数
环形链表

栈、队列

比较含退格的字符串
删除最外层的括号

第七周:2020-10-19 ---- 2020-10-25

2020-10-19
面试题 03.04. 化栈为队
用栈实现队列
剑指 Offer 09. 用两个栈实现队列
整理字符串
面试题 03.02. 栈的最小值
最小栈
剑指 Offer 30. 包含min函数的栈
下一个更大元素 I
用队列实现栈
用栈操作构建数组
文件夹操作日志搜集器
删除字符串中的所有相邻重复项
最近的请求次数
2020-10-20

N叉树的前序遍历
N叉树的后序遍历
剑指 Offer 54. 二叉搜索树的第k大节点
左叶子之和
二叉树的层序遍历
二叉树的层次遍历 II
剑指 Offer 32 - II. 从上到下打印二叉树 II
二叉树的堂兄弟节点
剑指 Offer 28. 对称的二叉树
叶子相似的树
2020-10-21
面试题 04.04. 检查平衡性
平衡二叉树
剑指 Offer 55 - I. 二叉树的深度
N叉树的最大深度
面试题 04.02. 最小高度树
二叉树的最小深度
剑指 Offer 27. 二叉树的镜像
2020-10-22
递增顺序查找树
路径总和
根据二叉树创建字符串
合并二叉树
翻转二叉树
剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
剑指 Offer 68 - II. 二叉树的最近公共祖先
相同的树
单值二叉树
两数之和 IV - 输入 BST
2020-10-23
二叉树的直径
二叉搜索树中的众数
二叉树中第二小的节点
将有序数组转换为二叉搜索树
另一个树的子树
二叉树的坡度
面试题 17.12. BiNode
2020-10-24
二叉树的层平均值
二叉搜索树的最小绝对差
二叉搜索树节点最小距离
二叉树的所有路径
修剪二叉搜索树
二叉搜索树中的搜索
二叉搜索树的范围和
从根到叶的二进制数之和
2020-10-25

动态规划

面试题 17.16. 按摩师
打家劫舍
买卖股票的最佳时机
使用最小花费爬楼梯
面试题 08.01. 三步问题
判断子序列
区域和检索 - 数组不可变
剑指 Offer 42. 连续子数组的最大和
面试题 16.17. 连续数列

第八周:2020-10-26 ---- 2020-11-1

其他

2020-10-26
面试题 03.06. 动物收容所
七进制数
LCP 01. 猜数字
LCP 06. 拿硬币
LCP 07. 传递信息
LCP 11. 期望个数统计
LCP 17. 速算机器人
LCP 18. 早餐组合
LCP 22. 黑白方格画
1042. 不邻接植花
剑指 Offer 25. 合并两个排序的链表
2020-10-27
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer 65. 不用加减乘除做加法
剑指 Offer 57. 和为s的两个数字
剑指 Offer 39. 数组中出现次数超过一半的数字 LCOF
169. Majority Element
面试题 17.10 主要元素
剑指 Offer 05. 替换空格 LCOF
剑指 Offer 62 圆圈中最后剩下的数字
剑指 Offer 61 扑克牌中的顺子
面试题 16.11 跳水板
2020-10-28
剑指 Offer 59 - I. 滑动窗口的最大值
剑指 Offer 40. 最小的k个数
面试题 03.01. 三合一
LCP 02. 分式化简
面试题 08.10. 颜色填充
根据数字二进制下 1 的数目排序
删除某些元素后的数组均值
相对名次
2020-10-29
Nim 游戏
最长特殊序列 Ⅰ
Fizz Buzz
构造矩形
二进制手表
旋转字符串
设计停车系统
设计哈希集合
设计哈希映射
剑指 Offer 60. n个骰子的点数
2020-10-31
密钥格式化
移动石子直到连续
日期之间隔几天
括号的最大嵌套深度
字符的最短距离
剑指 Offer 57 - II. 和为s的连续正数序列
写字符串需要的行数
两个相同字符之间的最长子字符串
最后一块石头的重量

你可能感兴趣的:(数据结构(C++),1024程序员节)