Merge branch 'master' of https://github.com/CyC2018/InterviewNotes
This commit is contained in:
commit
cedbf9ff46
|
@ -9,8 +9,6 @@
|
|||
<a href="other/Group.md"> <img src="https://img.shields.io/badge/>-group-4ab8a1.svg"></a> <a href="https://legacy.gitbook.com/book/cyc2018/interview-notebook/details"> <img src="https://img.shields.io/badge/_-gitbook-4ab8a1.svg"></a>
|
||||
</div>
|
||||
|
||||
<!-- [![](https://img.shields.io/badge/>-gitter-blue.svg)](https://gitter.im/CyC2018-Interview-Notebook/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link) [![](https://img.shields.io/badge/_-gitbook-4ab8a1.svg)](https://legacy.gitbook.com/book/cyc2018/interview-notebook/details) -->
|
||||
|
||||
### :pencil2: 算法
|
||||
|
||||
- [剑指 Offer 题解](https://github.com/CyC2018/InnterviewNotes/blob/master/notes/剑指%20offer%20题解.md)
|
||||
|
|
151
other/算法与数据结构.md
Normal file
151
other/算法与数据结构.md
Normal file
|
@ -0,0 +1,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
|
Loading…
Reference in New Issue
Block a user