数据结构
[toc]
链表类
LinkedHashSet
java
LinkedHashMap
java
数组类
Stack
Queue
树
[toc]
二叉树
普通二叉树
二叉搜索树
N叉树
红黑树
重点汇总
数据结构
- 数组
- 链表
- 栈
- 队列
- 散列表
- 二叉树
- 堆
- 跳表
- 图
- Trie数
算法
- 递归
- 排序
- 二分查找
- 搜索
- 哈希算法
- 贪心算法
- 分治算法
- 回溯算法
- 动态规划
- 字符串匹配算法
算法题分类
链表
- 翻转
- 两两翻转
- 有序链表合并
- 链表加法
- 链表减法
字符串
- 加法
- 减法
- 字符串转double
二叉树
- 先、中、后序遍历,递归非递归
- 层次遍历
- 蛇形层次遍历,两个栈实现
栈
- 队列实现栈
队列
- 栈实现队列
动态规划
- 股票买入时机
- 硬币拿取方式数量
10x程序员工作法
Untitled
线性回归
误差
误差
Untitled
[toc]
梳理
解题思考
- 每个题的时间/空间复杂度是多少,及最好/最坏情况的时间/空间复杂度
算法框架
前缀和
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
差分数组
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
双指针
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
滑动窗口
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
二分查找
解决的问题:
- 查找某个数
- 确定左/右边界线
题目特点(如何辨析是否使用):
经典题目:
- ⼒扣第 34 题「在排序数组中查找元素的第⼀个和最后⼀个位置」
- 力扣875. 爱吃⾹蕉的珂珂(中等)
- 力扣1011. 在D天内送达包裹的能⼒(中等)
田忌赛马
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
- 力扣870. 优势洗牌(中等)
链表操作递归秘籍
解决的问题:
- 翻转链表
- 部分翻转链表
题目特点(如何辨析是否使用):
经典题目:
-
LeetCode 206. 反转链表(简单)
-
LeetCode 92. 反转链表 II(中等)
---------
括号题目
解决的问题:
- 平衡括号串(一)p119
- 平衡括号串(二)p120
题目特点(如何辨析是否使用):
经典题目:
- ⼒扣第 921 题「使括号有效的最少添加」
- ⼒扣第 1541 题「平衡括号字符串的最少插⼊次数」
单调栈
解决的问题:
- 后面第一个更大的数
思考:
- 为什么要用从后往前的方式入栈?
- 因为最后要输出的是更大的数的值,而不是索引,如果是从前往后入栈,入栈的元素就只能存入值,它的索引就丢了,而最终的结果是要按照这个索引把值替换掉,所以不能这么解
题目特点(如何辨析是否使用):
经典题目:
-
LeetCode 上拿下如下题⽬:
\496. 下⼀个更⼤元素I(简单)
\503. 下⼀个更⼤元素II(中等)
\739. 每⽇温度(中等)
----------
单调队列
解决的问题:
- 滑动窗口
题目特点(如何辨析是否使用):
经典题目:
- \239. 滑动窗⼝最⼤值(困难)
去重算法
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
-
LeetCode 上拿下如下题⽬:
\316. 去除重复字⺟(中等)
\1081. 不同字符的最⼩⼦序列(中等)
LRU
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
LFU
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
常数时间随机读取/删除数组元素(P153)
数据结构设计题
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
-
LeetCode:
\380. 常数时间插⼊、删除和获取随机元素(中等)
\710. ⿊名单中的随机数(困难)
如何在无限序列中随机抽取元素(P611)
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
-
去 LeetCode 上拿下如下题⽬:
\382. 链表随机节点(中等)
\398. 随机数索引(中等)
笔记框架
解决的问题:
题目特点(如何辨析是否使用):
经典题目:
Untitled
麦肯锡问题分析与解决技巧
失败的逻辑
大数据之路
数据技术篇
第2章 日志采集
2.0 要点
- 如何埋点数据,已保证能统计所需的业务数据,并适应不断增加的需求
- 如何过滤数据,清除掉攻击、爬虫等影响正常业务统计的数据
- 数据完善,根据某些手段对缺失信息进行补充。比如用登陆后的用户名,回填之前未登录时的用户名字段。但这样就不能区分是不是登陆操作了,如需要,可以增加字段标示。
第3章 数据同步
第4章 离线数据开发
第5章 实时技术
5.2.2 数据处理
1. 去重指标
2. 数据倾斜
3. 事务处理
第6章 数据服务
第7章 数据挖掘
数据模型篇
第8章 大数据领域建模综述
8.4 典型的数据仓库建模方法论
8.4.1 ER模型
建模过程分为三个阶段
- 高层模型
- 中层模型
- 物理模型(底层模型)