Skip to content

JuniorPan/2018_interview

Repository files navigation

- 下一站跳哪 放弃幻想、时刻准备、随时面试

窗口的最大值更新问题: 利用双端队列去做
7.生成窗口最大值数组.cpp
10.最大值减最小值小于或等于num的子数组数量.cpp

单调栈结构
单调栈结构
MaximalRectangle

给定一个数组序列, 需要求选出一个区间, 使得该区间是所有 区间中经过如下计算的值最大的一个: 区间中的最小数 * 区间所有数的和 最后程序输出经过计算后的最大值即可,不需要输出具体的区 间。如给定序列 [6 2 1]则根据上述公式, 可得到所有可以选 定各个区间的计算值:
[6] = 6 * 6 = 36;
[2] = 2 * 2 = 4;
[1] = 1 * 1 = 1;
[6,2] = 2 * 8 = 16;
[2,1] = 1 * 3 = 3;
[6, 2, 1] = 1 * 9 = 9;
从上述计算可见选定区间 [6] ,计算值为 36, 则程序输出 为 36。 区间内的所有数字都在[0, 100]的范围内;

子数组最大累加和问题:
53.MaximumSubarray.cpp
18.子矩阵的最大累加和 两个不相交最大子数组和

双指针问题
容器接水

最长递增子序列问题:
300. Longest Increasing Subsequence
354. Russian Doll Envelopes
673. Number of Longest Increasing Subsequence(还没搞定)

经典DFS结构(深度优先搜索)
经典DFS
200. Number of Islands
329. Longest Increasing Path in a Matrix
576. Out of Boundary Paths
688. Knight Probability in Chessboard
827. Making A Large Island

二分查找常见问题解决方法总结

堆问题
215. Kth Largest Element in an Array

回溯系列
39. Combination Sum
40. Combination Sum II
216. Combination Sum III
377. Combination Sum IV