update questions

This commit is contained in:
ranwenjie
2021-08-02 15:14:44 +08:00
parent a5adcb1a92
commit 10b17169b1
7 changed files with 95 additions and 14 deletions
+5
View File
@@ -52,6 +52,11 @@ struct
Node * sort_link_list_increasing_order (Node *pheader):
```
## 单链表归并排序
啥是归并排序?
## 给定单链表,检测是否有环。
@@ -6,6 +6,11 @@
* 大数问题
## int转二进
## 求1+2+…+n
要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。
@@ -17,6 +17,18 @@
* 贪心算法或动态规划
## 使用归并排序对一个 int 类型的数组排序
比如 [1, 6, 2, 2, 2, 3]
```
void sort(int * a, int length)
```
## 数组中超过出现次数超过一半的数字
题目:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
@@ -37,6 +49,7 @@
类似问题:找出数组中唯一的重复元素
## 数组中找出某数字出现的次数
在排序数组中,找出给定数字的出现次数。比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
@@ -69,9 +82,18 @@ topMaxK(int *a,int length, int k);
答案就是`二叉堆`。我们可以遍历总量中的每个元素来跟二叉堆中的堆顶元素比较(堆顶元素在`小根堆`中最小值,在`大根堆`中是最大值),这样在0(1)复杂度就可以完成查找操作,揭下来需要的操作就是重新调整推结构,复杂度是O(logk),因此整个操作复杂度是 `O(n*logk)`
`top-k 小的时候用 *大根堆* ,top-k 大得时候用 *小根堆*`
## 找第k大的数
比如 1,2,3,4,5,6,7和8这8个数字,低3大的数字是 6
```
int topK(int * a, int length, int k)
```
## 最长公共子序列 (动态规划的经典题目)
+25
View File
@@ -165,3 +165,28 @@ void printArry(int *a,int rows,int columns)
## 矩阵中的最大上升路径
```
nums = [
[9,9,4],
[6,6,8],
[2,1,1],
]
```
返回4, 最长上升路径 [1,2,6,9] ;
> Google 面试题, 此题采用bfs和拓扑排序均可达到面试官的要求。笔者认为,一般的bfs可以达到hire;记忆化搜索和拓扑排序可以达到strong hire
@@ -209,6 +209,12 @@ struct TreeNode
## 求一个二叉树中任意两个节点间的最大距离
两个节点的距离的定义是 这两个节点间边的个数,比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,优化时间空间复杂度。
+13
View File
@@ -0,0 +1,13 @@
# 树
## 给一棵树 求最大宽度
## 树的广度遍历深度遍历
## 多叉树的层序遍历
+19 -14
View File
@@ -1,28 +1,33 @@
31.华为面试题:
一类似于蜂窝的结构的图,进行搜索最短路径(要求5分钟)
深度优先遍历(DFS)和广度优先遍历(BFS) 深度优先遍历(Depth First Search, 简称 DFS) 与广度优先遍历(Breath First Search)是图论中两种非常重要的算法,生产上广泛用于拓扑排序,寻路(走迷宫),搜索引擎,爬虫等,也频繁出现在 leetcode,高频面试题中
求一个有向连通图的割点,割点的定义是,如果除去此节点和与其相关的边,
## 深度优先遍历
深度优先遍历(DFS)
## 广度优先遍历
广度优先遍历(BFS)
## 华为面试题:一类似于蜂窝的结构的图,进行搜索最短路径(要求5分钟)
## 求一个有向连通图的割点,割点的定义是,如果除去此节点和与其相关的边,
有向图不再连通,描述算法。
11、平面上N个点,每两个点都确定一条直线,
## 平面上N个点,每两个点都确定一条直线,
求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。时间效率越高越好。
2.求一个有向连通图的割点,割点的定义是,
如果除去此节点和与其相关的边,有向图不再连通,描述算法。
求一个二叉树中任意两个节点间的最大距离,
两个节点的距离的定义是 这两个节点间边的个数,
比如某个孩子节点和父节点间的距离是1,和相邻兄弟节点间的距离是2,优化时间空间复杂度。