forked from CyC2018/CS-Notes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
算法与数据结构.md
151 lines (79 loc) · 4.09 KB
/
算法与数据结构.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# Algorithm
leetcode/lintcode上的算法题
**关于问题的答案和解体的思路,可以移步 : https://github.com/zhaozhengcoder/Algorithm**
### About
这个仓库最初的想法是把lintcode/lintocde上面的算法题目整理一下,因为很多题目太多了显得太乱了,就不继续在GitHub上面写了,以前写的一部分移到我的博客上面了。
GitHub上面打算整理一些比较典型 或者是 自己思考过的觉得很好的问题。
在博客上面开了两个专栏
1. 数据结构/算法导论 :
https://www.jianshu.com/nb/12397278
2. OJ练习题 :
https://www.jianshu.com/nb/9973135
推荐两篇自己对 递归搜索和动态规划 的理解的blog :
1. https://www.jianshu.com/p/5eb4da919efe
2. https://www.jianshu.com/p/6b3a2304f63f
### 题目的索引
GITHUB上面打算整理一些比较典型 或者是 自己思考过的觉得很好的问题。
1.从数据结构的角度索引 :
a. 数组
两数之和
连续最大子数组
乘积最大子数组
买卖股票的最佳时机1,2,3
买卖股票的最佳时机1:寻找数组里面的最大上升子序列
买卖股票的最佳时机2:寻找数组里面所有的上升子序列
买卖股票的最佳时机3:寻找数组里面两个不重合的上升子序列,并且使他们的和最大 to-do
区间合并(将有交集的区间合并)
寻找缺失的数
1. 一个顺序的数组[1,2,3,5,6],缺少了一个数字,如何找到它?
2. 一个arr的数组,只有一个数字出现了一次,其他都出现了两次,如何找到它?
数组的近似划分(将一个数组分成两个,但是差最小)
数组里面第k大的数
跳跃游戏1,2
跳跃游戏1:
给出一个非负整数数组,你最初定位在数组的第一个位置,
数组中的每个元素代表你在那个位置可以跳跃的最大长度,
返回 是否能到达数组的最后一个位置
跳跃游戏2:
给出一个非负整数数组,你最初定位在数组的第一个位置,
数组中的每个元素代表你在那个位置可以跳跃的最大长度,
返回 使用最少的跳跃次数到达数组的最后一个位置
a+. 二维矩阵
顺时针打印二维矩阵
给出一个二维矩阵,找到一个路径(从某个左上角到某个角右下)使这条路径的值最大
b. 链表
c. 字符串
最长公共子序列(并不是连续的)
最长回文子串
d. 二叉树
返回一个平衡二叉树的第k大的节点
二叉树的最低公共祖先
非递归遍历二叉树
e. 图
最短路径
深度/广度优先遍历
2. 从算法的角度建立索引 :
a. 递归搜索问题
N后问题
全排列
组合问题1,2
b. 动态规划
背包问题1,2
数组的近似划分(将一个数组分成两个,但是差最小)
跳跃游戏1,2
给出一个二维矩阵,找到一个路径(从某个左上角到某个角右下)使这条路径的值最大
3. 常用
a. 排列/组合
b. 深度优先遍历
c. 最短路径
4. 智力题(算法本身很简单,就是想不到的那种)
最多有多少个点在同一条直线上
### Others
1. 类似于系统设计的题目
带最小值的栈/队列
url长链接转短链接
2. 解决特定问题
并查集
布隆过滤器
如果你对机器学习的算法感兴趣,欢迎共同讨论:
https://github.com/zhaozhengcoder/Machine-Learning