清华大学尹成 怎么样

清华大学尹成 怎么样

编程能力极强,算法能力极强,业界的最强算法王者

 

 


=============================================================
 清华学神尹成的数据结构与算法,全程golang代码实战
=============================================================

-------------------------------------------------------------
1 时间效率分析
-------------------------------------------------------------


1.1 时间效率

1.2 空间效率


-------------------------------------------------------------
2 线程安全
-------------------------------------------------------------


2.1 多线程时间错开,mutex


-------------------------------------------------------------
3 逻辑结构
-------------------------------------------------------------


3.1 队列

3.1.1 树状,图状广度搜索

3.1.2 数组队列,删除麻烦

3.1.3 数组循环队列

3.1.4 优先队列-堆

3.1.5 链表队列

3.1.5.1 单练队列,双链队列,单环队列,双环队列

3.1.6 线程安全

3.1.6.1 channel

3.1.6.2 原子操作

3.1.6.3 线程锁mutex

3.1.7 双端队列

3.2 栈

3.2.1 树状,图状深度搜索

3.2.2 模拟任何递归

3.2.2.1 全排列全组合

3.2.2.2 递归与非递归表达式计算1+(3*(1+2))

3.2.2.2.1 以太坊虚拟机原理

3.2.2.3 遍历文件夹

3.2.2.4 遍历图

3.2.2.5 迷宫问题

3.2.2.6 汉诺塔

3.2.3 数组栈-栈溢出

3.2.4 链表栈不会栈溢出

3.3 哈希表

3.3.1 快速查找O(1)

3.3.2 哈希算法-系统自带-md5,sha256,sha512,crc64

3.3.3 自定义位运算哈希

3.3.4 数组哈希表,链表哈希表,红黑树哈希表

3.4 集合set

3.4.1 元素不重合

3.4.2 交集,差集,并集

3.5 映射map

3.5.1 key,value


-------------------------------------------------------------
4 存储结构
-------------------------------------------------------------


4.1 数组连续

4.2 指针链式

4.2.1 二叉树

4.2.2 链表

4.2.3 B+,红黑树,图


-------------------------------------------------------------
5 线性结构
-------------------------------------------------------------


5.1 数组

5.1.1 查找修改遍历O(1)

5.1.2 删除插入O(n)

5.1.3 访问数组迭代器

5.1.4 模拟栈,队列,二叉树,堆,SBT树------

5.1.5 排序

5.1.5.1 战五渣排序

5.1.5.1.1 选择排序

5.1.5.1.2 冒泡排序

5.1.5.1.3 插入排序

5.1.5.1.4 奇偶排序

5.1.5.1.5 佛系排序

5.1.5.2 常见外排序

5.1.5.2.1 二分查找插入排序

5.1.5.2.1.1 一遍读取一边排序

5.1.5.2.2 归并排序

5.1.5.2.2.1 多线程

5.1.5.3 高效排序

5.1.5.3.1 三位快速排序

5.1.5.3.1.1 多线程

5.1.5.3.1.2 快速查找第N大的数

5.1.5.3.2 普通快速排序

5.1.5.3.3 希尔排序-多线程

5.1.5.3.4 鸡尾酒排序

5.1.5.3.5 锦标赛排序

5.1.5.3.6 计次排序

5.1.5.3.7 Gnome排序

5.1.5.3.8 煎饼排序

5.1.5.3.9 休眠排序

5.1.5.3.10 梳子排序

5.1.5.3.11 表插入排序

5.1.5.3.12 快速地址排序

5.1.5.4 急速选出极大值

5.1.5.4.1 堆排序

5.1.5.5 特定数据范围

5.1.5.5.1 桶排序

5.1.5.5.2 基数排序

5.1.6 查找

5.1.6.1 二分查找

5.1.6.1.1 模糊算法

5.1.6.2 顺序查找

5.1.6.3 拉格朗日中值查找

5.1.6.4 三分查找

5.1.6.5 斐波纳妾查找

5.1.7 处理大规模数据-排序,查找

5.2 链表

5.2.1 查找修改效率O(n)

5.2.2 删除插入效率O(1)

5.2.3 指针迭代器

5.2.4 模拟栈,队列,二叉树,

5.2.5 排序

5.2.5.1 冒泡排序

5.2.5.2 选择排序

5.2.5.3 3插入排序

5.2.5.3.1 读取文件一遍读取一边插入

5.2.5.4 1快速排序

5.2.5.4.1 快速排序

5.2.5.5 2归并排序

5.2.5.5.1 多个内存合并

5.2.6 单链表

5.2.6.1 单环链表

5.2.6.1.1 解决约瑟夫环

5.2.7 双链表

5.2.7.1 双环链表

5.2.8 Skiplist跳转表,性能堪比红黑树,方便序列化


-------------------------------------------------------------
6 树状结构
-------------------------------------------------------------


6.1 二叉树

6.1.1 树的平衡

6.1.2 二叉树的二分查找

6.1.3 二叉树遍历的几种方式,递归,非递归

6.1.4 二叉树经典面试题拆解

6.1.4.1 最小公共祖先

6.1.5 栈,队列辅助作用

6.1.6 数组,链式

6.1.7 线索树,三个指针,多了一个指针指向父节点

6.1.8 次优查找树

6.1.8.1 红黑树之前的产物

6.2 二叉树平衡改进

6.2.1 AVL树

6.2.2 红黑树

6.2.2.1 增删查改性能均衡,删除插入O(1),查找修改O(log2N)

6.2.3 默克尔树-快速验证防止数据被纂改

6.3 非二叉树

6.3.1 B树

6.3.1.1 降低红黑树的深度

6.3.2 哈夫曼树

6.3.2.1 编码压缩解压缩

6.3.3 字典树-百度输入提示

6.3.3.1 前缀

6.3.3.2 后缀

6.3.4 线段树

6.3.4.1 快速查找

6.3.5 伸展树

6.3.5.1 按照访问次数旋转的树

6.3.6 VEB树

6.3.6.1 优先队列

6.3.7 哈希树

6.3.7.1 百度网盘急速上传

6.3.8 KD树

6.3.8.1 处理数据范围分类

6.3.9 区间树

6.3.9.1 数据区间查找

6.3.10 B+树

6.3.10.1 B树的强化版

6.3.11 rangeTree

6.3.11.1 计算范围

6.3.12 并查集

6.3.12.1 快速找到根节点

6.3.13 cover树,树套树

6.3.14 insiderTree

6.3.15 SBT树-平衡-类似红黑树

6.3.16 斯坦纳树

6.3.16.1 最小生成树

6.3.17 2-3树,被红黑树淘汰


-------------------------------------------------------------
7 图状结构
-------------------------------------------------------------


7.1 最小生成树

7.1.1 克鲁斯卡尔’

7.1.2 普里姆算法

7.1.3 Gabow结合SPFA实现最小生成树

7.1.4 BottleNeck最小生成树

7.1.5 MstReucePrim最小生成树

7.1.6 SecondaryMSt最小生成树

7.2 最短路径

7.2.1 A*算法最优

7.2.2 Dijskra算法

7.2.2.1 数据聚类

7.2.3 Floyd算法

7.2.4 Bellman算法

7.2.5 JohnSon算法

7.2.6 SPFA算法

7.3 遍历

7.3.1 深度遍历

7.3.1.1 栈,递归

7.3.2 广度遍历

7.3.2.1 队列

7.4 图描述

7.4.1 矩阵法-不常用

7.4.2 邻接表

7.4.2.1 图

7.4.2.2 方向图

7.4.2.3 流量图

7.4.2.4 权重图

7.5 强联通分量

7.6 关键路径

7.7 欧拉回路

7.8 DAG有向无环图

7.8.1 并发操作,多线程加速

7.8.2 容易验证

7.8.3 深度与广度

7.8.4 DAG结构-取代区块链

7.9 top排序

7.10 网络流

7.10.1 DINIC算法

7.10.2 标签ISPA算法

7.10.3 HopcaraftKarp算法

7.10.4 最大流最小割

7.10.5 Ford-Fullerson


-------------------------------------------------------------
8 外排序
-------------------------------------------------------------


8.1 大数据

8.1.1 bitmap实现数据压缩排序查找

8.1.2 BitSet存储二进制

8.1.2.1 布隆过滤器判断数据是否存在

8.2 文件排序

8.2.1 多路平衡归并排序

8.2.2 胜者树,败者树

8.2.3 数据样本有限,桶排序


-------------------------------------------------------------
9 排序
-------------------------------------------------------------


9.1 字符串排序

9.2 结构体类排序

9.2.1 重载接口swap,less,len

9.3 快速查找

9.4 排序类型

9.4.1 内存排序

9.4.2 文件排序

9.4.3 多线程排序

9.4.4 分布式排序

9.4.4.1 多线程

9.4.4.2 网络通信

9.4.4.2.1 RPC

9.4.4.3 算法


-------------------------------------------------------------
10 字符串
-------------------------------------------------------------


10.1 蛮力搜索

10.2 KMP算法

10.3 AC自动机,字符串快速匹配

10.3.1 有限自动机

10.3.2 DFA自动机

10.3.3 NFA自动机

10.4 BM字符串搜索

10.5 Sunday字符串搜索算法

10.6 RainSharp算法

10.7 后缀数组

10.8 中文分词

10.9 SIM哈希


-------------------------------------------------------------
11 算法
-------------------------------------------------------------


11.1 遗传算法

11.2 神经网络

11.3 爬山算法

11.4 模拟退火算法

11.5 蚂蚁群算法

11.6 粒子群算法

11.7 LRU缓存算法

11.8 内存优化

11.8.1 计数器管理

11.8.2 权重管理

11.8.3 标记管理

11.8.4 分代管理

11.8.5 三色管理

11.9 硬盘优化

11.9.1 索引

11.9.2 倒排索引

11.9.3 定位读取seek

11.10 常见算法

11.10.1 动态规划

11.10.2 贪心算法

11.10.3 分治算法

11.10.4 回溯算法

11.10.5 递归算法’

11.10.6 近似算法

11.10.7 枚举算法

11.10.8 模拟算法

11.10.9 求值算法

11.10.10 构造算法


-------------------------------------------------------------
12 矩阵与多项式
-------------------------------------------------------------


12.1 矩阵

12.2 多项式

12.3 傅里叶变换

12.4 线性规划

12.4.1 线性代数,处理多维数据


-------------------------------------------------------------
13 堆
-------------------------------------------------------------


13.1 数组堆-最大最小

13.2 链式堆-最大最小‘

13.3 左偏堆

13.4 斐波纳妾堆综合性能最优

13.5 Treap具备二叉树与堆的优点

13.6 rank-pair堆

13.7 pair堆

13.8 二项堆


-------------------------------------------------------------
14 内存数据结构序列化
-------------------------------------------------------------


14.1 数组,链表,树


-------------------------------------------------------------
15 阶段项目
-------------------------------------------------------------


15.1 QQ17亿数据-有限内存快速检索

15.2 网易的52G数据密码概率生成

15.3 搜索引擎

15.4 java编译器

15.5 高并发分布式负载均衡


-------------------------------------------------------------
16 计算几何学
-------------------------------------------------------------


16.1 凸包

16.2 最近点对


-------------------------------------------------------------
17 广义表
-------------------------------------------------------------


17.1 线段树,B+树


-------------------------------------------------------------
18 常规算法练习
-------------------------------------------------------------


18.1 0001.two-sum
0002.add-two-numbers
0003.longest-substring-without-repeating-characters
0004.median-of-two-sorted-arrays
0005.longest-palindromic-substring
0006.zigzag-conversion
0007.reverse-integer
0008.string-to-integer-atoi
0009.palindrome-number
0010.regular-expression-matching
0011.container-with-most-water
0012.integer-to-roman
0013.roman-to-integer
0014.longest-common-prefix
0015.3sum
0016.3sum-closest
0017.letter-combinations-of-a-phone-number
0018.4sum
0019.remove-nth-node-from-end-of-list
0020.valid-parentheses
0021.merge-two-sorted-lists
0022.generate-parentheses
0023.merge-k-sorted-lists
0024.swap-nodes-in-pairs
0025.reverse-nodes-in-k-group
0026.remove-duplicates-from-sorted-array
0027.remove-element
0028.implement-strstr
0029.divide-two-integers
0030.substring-with-concatenation-of-all-words
0031.next-permutation
0032.longest-valid-parentheses
0033.search-in-rotated-sorted-array
0034.search-for-a-range
0035.search-insert-position
0036.valid-sudoku
0037.sudoku-solver
0038.count-and-say
0039.combination-sum
0040.combination-sum-ii
0041.first-missing-positive
0042.trapping-rain-water
0043.multiply-strings
0044.wildcard-matching
0045.jump-game-ii
0046.permutations
0047.permutations-ii
0048.rotate-image
0049.group-anagrams
0050.powx-n
0051.n-queens
0052.n-queens-ii
0053.maximum-subarray
0054.spiral-matrix
0055.jump-game
0056.merge-intervals
0057.insert-interval
0058.length-of-last-word
0059.spiral-matrix-ii
0060.permutation-sequence
0061.rotate-list
0062.unique-paths
0063.unique-paths-ii
0064.minimum-path-sum
0065.valid-number
0066.plus-one
0067.add-binary
0068.text-justification
0069.sqrtx
0070.climbing-stairs
0071.simplify-path
0072.edit-distance
0073.set-matrix-zeroes
0074.search-a-2d-matrix
0075.sort-colors
0076.minimum-window-substring
0077.combinations
0078.subsets
0079.word-search
0080.remove-duplicates-from-sorted-array-ii
0081.search-in-rotated-sorted-array-ii
0082.remove-duplicates-from-sorted-list-ii
0083.remove-duplicates-from-sorted-list
0084.largest-rectangle-in-histogram
0085.maximal-rectangle
0086.partition-list
0087.scramble-string
0088.merge-sorted-array
0089.gray-code
0090.subsets-ii
0091.decode-ways
0092.reverse-linked-list-ii
0093.restore-ip-addresses
0094.binary-tree-inorder-traversal
0095.unique-binary-search-trees-ii
0096.unique-binary-search-trees
0097.interleaving-string
0098.validate-binary-search-tree
0099.recover-binary-search-tree
0100.same-tree
0101.symmetric-tree
0102.binary-tree-level-order-traversal
0103.binary-tree-zigzag-level-order-traversal
0104.maximum-depth-of-binary-tree
0105.construct-binary-tree-from-preorder-and-inorder-traversal
0106.construct-binary-tree-from-inorder-and-postorder-traversal
0107.binary-tree-level-order-traversal-ii
0108.convert-sorted-array-to-binary-search-tree
0109.convert-sorted-list-to-binary-search-tree
0110.balanced-binary-tree
0111.minimum-depth-of-binary-tree
0112.path-sum
0113.path-sum-ii
0114.flatten-binary-tree-to-linked-list
0115.distinct-subsequences
0118.pascals-triangle
0119.pascals-triangle-ii
0120.triangle
0121.best-time-to-buy-and-sell-stock
0122.best-time-to-buy-and-sell-stock-ii
0123.best-time-to-buy-and-sell-stock-iii
0124.binary-tree-maximum-path-sum
0125.valid-palindrome
0126.word-ladder-ii
0127.word-ladder
0128.longest-consecutive-sequence
0129.sum-root-to-leaf-numbers
0130.surrounded-regions
0131.palindrome-partitioning
0132.palindrome-partitioning-ii
0134.gas-station
0135.candy
0136.single-number
0137.single-number-ii
0139.word-break
0140.word-break-ii
0143.reorder-list
0144.binary-tree-preorder-traversal
0145.binary-tree-postorder-traversal
0146.lru-cache
0147.insertion-sort-list
0148.sort-list
0149.max-points-on-a-line
0150.evaluate-reverse-polish-notation
0152.maximum-product-subarray
0153.find-minimum-in-rotated-sorted-array
0154.find-minimum-in-rotated-sorted-array-ii
0155.min-stack
0162.find-peak-element
0164.maximum-gap
0165.compare-version-numbers
0166.fraction-to-recurring-decimal
0167.two-sum-ii-input-array-is-sorted
0168.excel-sheet-column-title
0169.majority-element
0171.excel-sheet-column-number
0172.factorial-trailing-zeroes
0174.dungeon-game
0179.largest-number
0187.repeated-dna-sequences
0188.best-time-to-buy-and-sell-stock-iv
0189.rotate-array
0198.house-robber
0199.binary-tree-right-side-view
0200.number-of-islands
0201.bitwise-and-of-numbers-range
0202.happy-number
0203.remove-linked-list-elements
0204.count-primes
0205.isomorphic-strings
0206.reverse-linked-list
0207.course-schedule
0208.implement-trie-prefix-tree
0209.minimum-size-subarray-sum
0210.course-schedule-ii
0211.add-and-search-word-data-structure-design
0212.word-search-ii
0213.house-robber-ii
0214.shortest-palindrome
0215.kth-largest-element-in-an-array
0216.combination-sum-iii
0217.contains-duplicate
0218.the-skyline-problem
0219.contains-duplicate-ii
0220.contains-duplicate-iii
0221.maximal-square
0223.rectangle-area
0224.basic-calculator
0225.implement-stack-using-queues
0226.invert-binary-tree
0227.basic-calculator-ii
0228.summary-ranges
0229.majority-element-ii
0230.kth-smallest-element-in-a-bst
0231.power-of-two
0232.implement-queue-using-stacks
0233.number-of-digit-one
0234.palindrome-linked-list
0238.product-of-array-except-self
0239.sliding-window-maximum
0240.search-a-2d-matrix-ii
0241.different-ways-to-add-parentheses
0242.valid-anagram
0257.binary-tree-paths
0258.add-digits
0260.single-number-iii
0263.ugly-number
0264.ugly-number-ii
0268.missing-number
0273.integer-to-english-words
0274.h-index
0275.h-index-ii
0279.perfect-squares
0282.expression-add-operators
0283.move-zeroes
0287.find-the-duplicate-number
0289.game-of-life
0290.word-pattern
0292.nim-game
0295.find-median-from-data-stream
0299.bulls-and-cows
0300.longest-increasing-subsequence
0301.remove-invalid-parentheses
0303.range-sum-query-immutable
0304.range-sum-query-2d-immutable
0306.additive-number
0307.range-sum-query-mutable
0309.best-time-to-buy-and-sell-stock-with-cooldown
0310.minimum-height-trees
0312.burst-balloons
0313.super-ugly-number
0315.count-of-smaller-numbers-after-self
0316.remove-duplicate-letters
0318.maximum-product-of-word-lengths
0319.bulb-switcher
0321.create-maximum-number
0322.coin-change
0324.wiggle-sort-ii
0326.power-of-three
0327.count-of-range-sum
0328.odd-even-linked-list
0329.longest-increasing-path-in-a-matrix
0330.patching-array
0331.verify-preorder-serialization-of-a-binary-tree
0332.reconstruct-itinerary
0334.increasing-triplet-subsequence
0335.self-crossing
0336.palindrome-pairs
0337.house-robber-iii
0338.counting-bits
0342.power-of-four
0343.integer-break
0344.reverse-string
0345.reverse-vowels-of-a-string
0347.top-k-frequent-elements
0349.intersection-of-two-arrays
0350.intersection-of-two-arrays-ii
0352.data-stream-as-disjoint-intervals
0354.russian-doll-envelopes
0355.design-twitter
0357.count-numbers-with-unique-digits
0363.max-sum-of-rectangle-no-larger-than-k
0365.water-and-jug-problem
0367.valid-perfect-square
0368.largest-divisible-subset
0371.sum-of-two-integers
0372.super-pow
0373.find-k-pairs-with-smallest-sums
0375.guess-number-higher-or-lower-ii
0376.wiggle-subsequence
0377.combination-sum-iv
0378.kth-smallest-element-in-a-sorted-matrix
0380.insert-delete-getrandom-o1
0381.insert-delete-getrandom-o1-duplicates-allowed
0382.linked-list-random-node
0383.ransom-note
0384.shuffle-an-array
0385.mini-parser
0387.first-unique-character-in-a-string
0388.longest-absolute-file-path
0389.find-the-difference
0390.elimination-game
0391.perfect-rectangle
0392.is-subsequence
0393.utf-8-validation
0394.decode-string
0395.longest-substring-with-at-least-k-repeating-characters
0396.rotate-function
0397.integer-replacement
0398.random-pick-index
0399.evaluate-division
0400.nth-digit
0401.binary-watch
0402.remove-k-digits
0403.frog-jump
0404.sum-of-left-leaves
0405.convert-a-number-to-hexadecimal
0406.queue-reconstruction-by-height
0407.trapping-rain-water-ii
0409.longest-palindrome
0410.split-array-largest-sum
0412.fizz-buzz
0413.arithmetic-slices
0414.third-maximum-number
0415.add-strings
0416.partition-equal-subset-sum
0417.pacific-atlantic-water-flow
0419.battleships-in-a-board
0420.strong-password-checker
0421.maximum-xor-of-two-numbers-in-an-array
0423.reconstruct-original-digits-from-english
0424.longest-repeating-character-replacement
0432.all-oone-data-structure
0433.minimum-genetic-mutation
0434.number-of-segments-in-a-string
0435.non-overlapping-intervals
0436.find-right-interval
0437.path-sum-iii
0438.find-all-anagrams-in-a-string
0440.k-th-smallest-in-lexicographical-order
0441.arranging-coins
0442.find-all-duplicates-in-an-array
0443.string-compression
0445.add-two-numbers-ii
0446.arithmetic-slices-ii-subsequence
0447.number-of-boomerangs
0448.find-all-numbers-disappeared-in-an-array
0450.delete-node-in-a-bst
0451.sort-characters-by-frequency
0452.minimum-number-of-arrows-to-burst-balloons
0453.minimum-moves-to-equal-array-elements
0454.4sum-ii
0455.assign-cookies
0456.132-pattern
0457.circular-array-loop
0458.poor-pigs
0459.repeated-substring-pattern
0460.lfu-cache
0461.hamming-distance
0462.minimum-moves-to-equal-array-elements-ii
0463.island-perimeter
0464.can-i-win
0466.count-the-repetitions
0467.unique-substrings-in-wraparound-string
0468.validate-ip-address
0470.implement-rand10-using-rand7
0472.concatenated-words
0473.matchsticks-to-square
0474.ones-and-zeroes
0475.heaters
0476.number-complement
0477.total-hamming-distance
0478.generate-random-point-in-a-circle
0479.largest-palindrome-product
0480.sliding-window-median
0481.magical-string
0482.license-key-formatting
0483.smallest-good-base
0485.max-consecutive-ones
0486.predict-the-winner
0488.zuma-game
0491.increasing-subsequences
0492.construct-the-rectangle
0493.reverse-pairs
0494.target-sum
0495.teemo-attacking
0496.next-greater-element-i
0497.random-point-in-non-overlapping-rectangles
0498.diagonal-traverse
0500.keyboard-row
0501.find-mode-in-binary-search-tree
0502.ipo
0503.next-greater-element-ii
0504.base-7
0506.relative-ranks
0507.perfect-number
0508.most-frequent-subtree-sum
0513.find-bottom-left-tree-value
0514.freedom-trail
0515.find-largest-value-in-each-tree-row
0516.longest-palindromic-subsequence
0517.super-washing-machines
0518.coin-change-2
0519.random-flip-matrix
0520.detect-capital
0521.longest-uncommon-subsequence-i
0522.longest-uncommon-subsequence-ii
0523.continuous-subarray-sum
0524.longest-word-in-dictionary-through-deleting
0525.contiguous-array
0526.beautiful-arrangement
0528.random-pick-with-weight
0529.minesweeper
0530.minimum-absolute-difference-in-bst
0532.k-diff-pairs-in-an-array
0537.complex-number-multiplication
0538.convert-bst-to-greater-tree
0539.minimum-time-difference
0540.single-element-in-a-sorted-array
0541.reverse-string-ii
0542.01-matrix
0543.diameter-of-binary-tree
0546.remove-boxes
0547.friend-circles
0551.student-attendance-record-i
0552.student-attendance-record-ii
0553.optimal-division
0554.brick-wall
0556.next-greater-element-iii
0557.reverse-words-in-a-string-iii
0560.subarray-sum-equals-k
0561.array-partition-i
0563.binary-tree-tilt
0564.find-the-closest-palindrome
0565.array-nesting
0566.reshape-the-matrix
0567.permutation-in-string
0572.subtree-of-another-tree
0575.distribute-candies
0576.out-of-boundary-paths
0581.shortest-unsorted-continuous-subarray
0583.delete-operation-for-two-strings
0587.erect-the-fence
0591.tag-validator
0592.fraction-addition-and-subtraction
0593.valid-square
0594.longest-harmonious-subsequence
0598.range-addition-ii
0599.minimum-index-sum-of-two-lists
0600.non-negative-integers-without-consecutive-ones
0605.can-place-flowers
0606.construct-string-from-binary-tree
0609.find-duplicate-file-in-system
0611.valid-triangle-number
0617.merge-two-binary-trees
0621.task-scheduler
0622.design-circular-queue
0623.add-one-row-to-tree
0628.maximum-product-of-three-numbers
0629.k-inverse-pairs-array
0630.course-schedule-iii
0632.smallest-range
0633.sum-of-square-numbers
0636.exclusive-time-of-functions
0637.average-of-levels-in-binary-tree
0638.shopping-offers
0639.decode-ways-ii
0640.solve-the-equation
0641.design-circular-deque
0643.maximum-average-subarray-i
0645.set-mismatch
0646.maximum-length-of-pair-chain
0647.palindromic-substrings
0648.replace-words
0649.dota2-senate
0650.2-keys-keyboard
0652.find-duplicate-subtrees
0653.two-sum-iv-input-is-a-bst
0654.maximum-binary-tree
0655.print-binary-tree
0657.judge-route-circle
0658.find-k-closest-elements
0659.split-array-into-consecutive-subsequences
0660.remove-9
0661.image-smoother
0662.maximum-width-of-binary-tree
0664.strange-printer
0665.non-decreasing-array
0667.beautiful-arrangement-ii
0668.kth-smallest-number-in-multiplication-table
0669.trim-a-binary-search-tree
0670.maximum-swap
0671.second-minimum-node-in-a-binary-tree
0672.bulb-switcher-ii
0673.number-of-longest-increasing-subsequence
0674.longest-continuous-increasing-subsequence
0675.cut-off-trees-for-golf-event
0676.implement-magic-dictionary
0677.map-sum-pairs
0678.valid-parenthesis-string
0679.24-game
0680.valid-palindrome-ii
0682.baseball-game
0684.redundant-connection
0685.redundant-connection-ii
0686.repeated-string-match
0687.longest-univalue-path
0688.knight-probability-in-chessboard
0689.maximum-sum-of-3-non-overlapping-subarrays
0691.stickers-to-spell-word
0692.top-k-frequent-words
0693.binary-number-with-alternating-bits
0695.max-area-of-island
0696.count-binary-substrings
0697.degree-of-an-array
0698.partition-to-k-equal-sum-subsets
0699.falling-squares
0700.search-in-a-binary-search-tree
0701.insert-into-a-binary-search-tree
0703.kth-largest-element-in-a-stream
0704.binary-search
0705.design-hashset
0706.design-hashmap
0707.design-linked-list
0709.to-lower-case
0710.random-pick-with-blacklist
0712.minimum-ascii-delete-sum-for-two-strings
0713.subarray-product-less-than-k
0714.best-time-to-buy-and-sell-stock-with-transaction-fee
0715.range-module
0717.1-bit-and-2-bit-characters
0718.maximum-length-of-repeated-subarray
0719.find-k-th-smallest-pair-distance
0720.longest-word-in-dictionary
0721.accounts-merge
0722.remove-comments
0724.find-pivot-index
0725.split-linked-list-in-parts
0726.number-of-atoms
0728.self-dividing-numbers
0729.my-calendar-i
0730.count-different-palindromic-subsequences
0731.my-calendar-ii
0732.my-calendar-iii
0733.flood-fill
0735.asteroid-collision
0736.parse-lisp-expression
0738.monotone-increasing-digits
0739.daily-temperatures
0740.delete-and-earn
0741.cherry-pickup
0743.network-delay-time
0744.find-smallest-letter-greater-than-target
0745.prefix-and-suffix-search
0746.min-cost-climbing-stairs
0747.largest-number-at-least-twice-of-others
0748.shortest-completing-word
0749.contain-virus
0752.open-the-lock
0753.cracking-the-safe
0754.reach-a-number
0756.pour-water
0756.pyramid-transition-matrix
0757.set-intersection-size-at-least-two
0761.special-binary-string
0762.find-anagram-mappings
0762.prime-number-of-set-bits-in-binary-representation
0763.partition-labels
0764.largest-plus-sign
0765.couples-holding-hands
0766.toeplitz-matrix
0767.reorganize-string
0768.max-chunks-to-make-sorted-ii
0769.max-chunks-to-make-sorted
0770.basic-calculator-iv
0771.jewels-and-stones
0773.sliding-puzzle
0775.global-and-local-inversions
0777.swap-adjacent-in-lr-string
0778.swim-in-rising-water
0779.k-th-symbol-in-grammar
0780.reaching-points
0781.rabbits-in-forest
0782.transform-to-chessboard
0783.minimum-distance-between-bst-nodes
0784.letter-case-permutation
0785.is-graph-bipartite
0786.k-th-smallest-prime-fraction
0787.cheapest-flights-within-k-stops
0788.rotated-digits
0789.escape-the-ghosts
0790.domino-and-tromino-tiling
0791.custom-sort-string
0792.number-of-matching-subsequences
0793.preimage-size-of-factorial-zeroes-function
0794.valid-tic-tac-toe-state
0795.number-of-subarrays-with-bounded-maximum
0796.rotate-string
0797.all-paths-from-source-to-target
0798.smallest-rotation-with-highest-score
0799.champagne-tower
0801.minimum-swaps-to-make-sequences-increasing
0802.find-eventual-safe-states
0803.bricks-falling-when-hit
0804.unique-morse-code-words
0805.split-array-with-same-average
0806.number-of-lines-to-write-string
0807.max-increase-to-keep-city-skyline
0808.soup-servings
0809.expressive-words
0810.chalkboard-xor-game
0811.subdomain-visit-count
0812.largest-triangle-area
0813.largest-sum-of-averages
0814.binary-tree-pruning
0815.bus-routes
0816.ambiguous-coordinates
0817.linked-list-components
0818.race-car
0819.most-common-word
0820.short-encoding-of-words
0821.shortest-distance-to-a-character
0822.card-flipping-game
0823.binary-trees-with-factors
0824.goat-latin
0825.friends-of-appropriate-ages
0826.most-profit-assigning-work
0827.making-a-large-island
0828.unique-letter-string
0829.consecutive-numbers-sum
0830.positions-of-large-groups
0831.masking-personal-information
0832.flipping-an-image
0833.find-and-replace-in-string
0834.sum-of-distances-in-tree
0835.image-overlap
0836.rectangle-overlap
0837.new-21-game
0838.push-dominoes
0839.similar-string-groups
0840.magic-squares-in-grid
0841.keys-and-rooms
0842.split-array-into-fibonacci-sequence
0843.guess-the-word
0844.backspace-string-compare
0845.longest-mountain-in-array
0846.hand-of-straights
0847.shortest-path-visiting-all-nodes
0848.shifting-letters
0849.maximize-distance-to-closest-person
0850.rectangle-area-ii
0851.loud-and-rich
0852.peak-index-in-a-mountain-array
0853.car-fleet
0854.k-similar-strings
0855.exam-room
0856.score-of-parentheses
0857.minimum-cost-to-hire-k-workers
0858.mirror-reflection
0859.buddy-strings
0860.lemonade-change
0861.score-after-flipping-matrix
0862.shortest-subarray-with-sum-at-least-k
0863.all-nodes-distance-k-in-binary-tree
0864.shortest-path-to-get-all-keys
0865.smallest-subtree-with-all-the-deepest-nodes
0866.prime-palindrome
0867.transpose-matrix
0868.binary-gap
0869.reordered-power-of-2
0870.advantage-shuffle
0871.minimum-number-of-refueling-stops
0872.leaf-similar-trees
0873.length-of-longest-fibonacci-subsequence
0874.walking-robot-simulation
0875.koko-eating-bananas
0876.middle-of-the-linked-list
0877.stone-game
0878.nth-magical-number
0879.profitable-schemes
0880.decoded-string-at-index
0881.boats-to-save-people
0882.reachable-nodes-in-subdivided-graph
0883.projection-area-of-3d-shapes
0884.uncommon-words-from-two-sentences
0885.spiral-matrix-iii
0886.possible-bipartition
0887.super-egg-drop
0888.fair-candy-swap
0889.construct-binary-tree-from-preorder-and-postorder-traversal
0890.find-and-replace-pattern
0891.sum-of-subsequence-widths
0892.surface-area-of-3d-shapes
0893.groups-of-special-equivalent-strings
0894.all-possible-full-binary-trees
0895.maximum-frequency-stack
0896.monotonic-array
0897.increasing-order-search-tree
0898.bitwise-ors-of-subarrays
0899.orderly-queue
0900.rle-iterator
0901.online-stock-span
0902.numbers-at-most-n-given-digit-set
0903.valid-permutations-for-di-sequence
0904.fruit-into-baskets
0905.sort-array-by-parity
0906.super-palindromes
0907.sum-of-subarray-minimums
0908.smallest-range-i
0909.snakes-and-ladders
0910.smallest-range-ii
0911.online-election
0913.cat-and-mouse
0914.x-of-a-kind-in-a-deck-of-cards
0915.partition-array-into-disjoint-intervals
0916.word-subsets
0917.reverse-only-letters
0918.maximum-sum-circular-subarray
0919.complete-binary-tree-inserter
0920.number-of-music-playlists
0921.minimum-add-to-make-parentheses-valid
0922.sort-array-by-parity-ii
0923.3sum-with-multiplicity
0924.minimize-malware-spread
0925.long-pressed-name
0926.flip-string-to-monotone-increasing
0927.three-equal-parts
0928.minimize-malware-spread-ii
0929.unique-email-addresses
0930.binary-subarrays-with-sum
0933.number-of-recent-calls
0937.reorder-log-files
0940.distinct-subsequences-ii


-------------------------------------------------------------
19 世界五百强面试-算法拆解
-------------------------------------------------------------


19.1 1智力与逻辑测试
数学类型的测试题
【面试题1】兔子赛跑
【面试题2】女装的成本
【面试题3】徘徊的小鸟飞了多少米
【面试题4】电视机的价值
【面试题5】被污染的药丸
【面试题6】取水问题
【面试题7】院墙外的相遇
【面试题8】牛吃草问题
逻辑类型的测试题
【面试题1】哪位教授与会
【面试题2】谁是罪犯
【面试题3】王教授的生日
【面试题4】是谁闯的祸
【面试题5】会哪国语言
【面试题6】如何拿水果
【面试题7】海盗分赃
【面试题8】小镇上的四个朋友
【面试题9】说谎岛

2.字符串
替换字符串中空格
替换字符串中连续出现的指定字符串
正则表达式匹配
表示数值的字符串
数组中两个字符串的最小距离
字符串的允许重复与不允许重复的全排列全组合
如何判断两个字符串是否为换位字符串
如何对由大小写字母组成的字符数组排序
如何消除字符串的内嵌括号
如何判断一个字符串是否包含重复字符
如何按照给定的字母序列对字符数组排序
如何找到由其他单词组成的最长单词
如何统计字符串中连续的重复字符个数
求一个串中出现的第一个最长重复子串
如何求解字符串中字典序最大的子序列
如何判断一个字符串是否由另外一个字符串旋转得到
左旋转字符串
最长无重复字符子字符串
数字与字符串互转
计算字符串相似度
字符串回文
翻转句子中单词的顺序
在一个字符串中找到第一个只出现一次的字符。
在字符串中找出连续最长的数字串
输入两个字符串,从第一字符串中删除第二个字符串中所有的字符
找出该字符串中对称的子字符串的最大长度
已知一个字符串,比如 asderwsde,寻找其中的一个子字符串比如 sde 的个数,如果没有返回 0,有的话返回子字符串的个数
函数将字符串中的字符'*'移到串的前部分
求最大连续递增数字串
删除字符串中的数字并压缩字符串
求两个串中的第一个最长子串
 不开辟用于交换数据的临时空间,如何完成字符串的逆序
如何迅速匹配兄弟字符串
给出一个函数来合并两个字符串 A 和 B。字符串 A 的后几个字节和字符串 B的前几个字节重叠
字符串原地压缩 
一排 N(最大1M)个正整数+1 递增,乱序排列
字符串找出被重复的数字
如何查找到达目标词的最短链长度
添加最少字符使字符串整体都是回文字符串
括号字符串的有效性和最长有效长度

3.数组
如何查找数组中元素的最大值和最小值
如何找出数组中出现奇数次的数
如何找出数组中丢失的数
如何求数组中两个元素的最小距离
如何求数组中绝对值最小的数
找出数组中重复的数字
如何求数组连续最大和
如何在不排序的情况下求数组中的中位数
寻找和为定值的两个数
数组区间重合判断
寻找和为定值的多个数
最大连续子数组和
跳台阶
洗牌算法
二维数组的查找
斐波那契数列
旋转数组最小数字
机器人的运动范围
 调整数组顺序使奇数位于偶数前面
顺时针打印蛇形矩阵
数组中出现次数超过一半的数字
最小的k个数
和为s的连续序列
出现3次数组中找出出现1次的数
第一个只出现1次的字符
需按照丑数
数组排成最小的数
下排每个数都是先前上排那十个数在下排出现的次数
左移递减数列查找某一个数.
求一个矩阵中最大的二维矩阵(元素和最大)
通过交换 a,b 中的元素,使[序列 a 元素的和]与[序列 b 元素的和]之间的差最小 
给出一个数列,找出其中最长的单调递减(或递增)子序列
四对括号可以有多少种匹配排列方式
输入一个正数 n,输出所有和为 n 连续正数序列 
 输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
一个数组中除了两个数字之外,其余数字均出现了两次找出这两个数字
输入数字 n,按顺序输出从 1 最大的 n 位 10 进制数.
从扑克牌中随机抽 5 张牌,判断是不是一个顺子
排出的所有数字中最小
把 n 个骰子扔在地上,所有骰子朝上一面的点数之和为S
一个 int 数组,里面数据无任何限制,要求求出所有这样的数 a[i],其左边的数都小于等于它,右边的数都大于等于它
给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数 
随机发生器
求随机数构成的数组中找到长度大于=3 的最长的等差数列
N 个鸡蛋放到 M 个篮子中,篮子不能为空
用递归的方法判断整数组 a[N]是不是升序排列
腾讯数组乘积赋值的问题
有一个整数数组,请求出两两之差绝对值最小的值
 对于从 1 到 N 的连续整集合合,能划分成两个子集合,且保证每个集合的数字和是相等
求集合的所有子集的算法
输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
有 n 个长为 m+1 的字符串,如果某个字符串的最后 m个字符与某个字符串的前 m个字符匹配,则两个字符串可以联接,问这 n 个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误
一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。
数组分割
子数组最大成绩
最接近的三数之和
除自身以外数组的乘积
搜索范围
搜索旋转排序数组
汇总区间
下一个排列
长度最小的子数组
求众数 II
常数时间插入、删除和获取随机元素
两个排序数组的中位数
如何对磁盘分区
 如何对有大量重复的数字的数组排序
找到无序数组中最小的k 个数
在数组中找到出现次数大于N/K 的数

4.位运算与数值
二进制中1的个数
 寻找丑数.
数值的整数次方
打印从一到最大的n位数
位运算实现加法
求解500万以内亲和数
求最大公约数最小公倍数
质因数分解
哥德巴赫猜想验证
计算 1 到 N 的十进制数中 1 的出现次数
编程实现两个正整数的除法(不能用除法操作符)
把十进制数(long 型)分别以二进制和十六进制形式输出不能使用 printf
将一个数中的偶数位 bit 和奇数位 bit 交换
输入两个整数 n 和 m,从数列 1,2,3.......n 中 随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来.
如何判断1024!末尾多少个0
不使用^实现异或运算

5.链表
求链表中环的入口节点
从尾到头打印链表
删除链表的中间节点和a/b 处的节点
反转部分单向链表
判断一个链表是否为回文结构
复制含有随机指针节点的链表
将单链表的每K个节点之间逆序
 O(1)内删除链表中给定的节点
二叉树的序列化和反序列化
遍历二叉树的神级方法
找到二叉树中的最大搜索二叉子树
找到二叉树中符合搜索二叉树条件的最大拓扑结构
判断t1树中是否有与t2 树拓扑结构完全相同的子树
判断二叉树是否为平衡二叉树
根据后序数组重建搜索二叉树
判断一棵二叉树是否为搜索二叉树和完全二叉树
通过有序数组生成平衡搜索二叉树
Tarjan算法与并查集解决二叉树节点间最近公共祖先的批量查询问题
先序、中序和后序数组两两结合重构二叉树
统计和生成所有不同的二叉树
复杂链表的复制
圆圈中最后剩下的数字
如何计算两个单链表所代表的数之和
如何把链表相邻元素翻转
如何把链表以K个结点为一组进行翻转
两个链表的第一个公共节点
输入一个单向链表,输出该链表中倒数第 k 个结点
给定链表的头指针和一个结点指针,在 O(1)时间删除该结点
 输入一个链表的头结点,从尾到头反到来输出每个结点的值
如何在只给定单链表中某个结点的指针的情况下删除该结点
有两个双向循环链表 A,B,知道其头指针为:pHeadA,pHeadB,请写一函数将两链表中 data 值相同的结点删除
判断链表是否有环
链表入环点
单链表相交点
判断两个链表是否相交
删除排序链表中的重复元素
删除无链表中的重复元素 
链表k逆序
对链表进行插入排序
对链表进行归并排序
合并两个有序链表
合并k个有序链表
奇偶链表
回文链表
分隔链表
复制带随机指针的链表
重排链表
反转链表
反转链表
删除链表的倒数第n个节点
旋转链表
两两交换链表中的节点
两数相加 

6.队列与栈
最小栈
有效的括号
用队列实现栈
用栈实现队列
字符串解码
逆波兰表达式求值
柱形图中最大的矩形
最大矩形
接雨水
去除重复元素
四则计算器
如何从数组中找出满足a+b=c+d的两个数对
猫狗队列
生成窗口最大值数组
构造数组的MaxTree
最大值减去最小值小于或等于num的子数组数量
求最大子矩阵的大小

7.海量数据处理
统计4亿数据重出现次数最多的数据
上千万或上亿数据(有重复),统计其中出现次数最多的钱N个数据。
实现17亿数据的快速检索
磁盘文件排序
海量数据交集,并集,差集处理
有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序
有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。
 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?
在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中?
一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析。
一个文件,内含一千万行字符串,每个字符串在 1K 以内,要求找出所有相反的串对,如 abc 和 cba。
收藏了 1 万条 url,现在给你一条 url,如何找出相似的 url
 给定 a 、b  两个文件,各存放 50  亿个 url ,每个 url  各占 64  字节,内存限制是 4G ,让你找出 a 、b  文件共同的 url ?
 1000  万字符串,其中有些是重复的,需要把重复的全部去掉,保留没有重复的字符串。请怎么设计
100w  个数中找出最大的 100 
  一共有 N  个机器,每个机器上有 N  个数。每个机器最多存 O(N) 个数并对它们操作。如到 何找到 N^2  个数中的中位数
给定 n 个实数,求着 n 个实数在实轴上向量 2 个数之间的最大差值,要求线性的时间算法。
有几百亿的整数,分布的存储到几百台通过网络连接的计算机上,你能否开发出一个算法和系统,找出这几百亿数据的中值?就是在一组排序好的数据中居于中的数。显然,一台机器是装不下所有的数据。也尽量少用网络带宽。
如何从大量数据中找出不重复的整数
如何从海量数据中判断一个数是否存在
如何从海量数据中提取出不同数据例如电话号码的个数
40 亿个非负整数中找到出现两次的数和所有数的中位数

8.树
重建二叉树
二叉树的下一个节点
树的子结构
二叉树的镜像
对称二叉树
从上到下打印二叉树
之字形上到下打印二叉树
二叉树中和为某一值的路径
二叉搜索树与双向链表转换
二叉树最小公共祖先
在二元树中找出和为某一值的所有路径
判断整数序列是不是二叉查找树的后序遍历结果
  输入一棵二叉树的根结点,求该树的深度
 编写一个程序,把一个有序整数数组放到二叉树中
一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离 f值最近、大于 f 值的结点。复杂度如果是 O(n2)则不得分
求一个二叉树中任意两个节点间的最大距离,
 递归和非递归前序遍历
 递归和非递归中序遍历
 递归和非递归后序遍历
 层次遍历
 齿轮遍历
 平衡二叉树
 二叉树的最大深度
 二叉树的最小深度
 二叉树的所有路径
 路径总和
 相同的树
 对称二叉树
 将有序数组转换为二叉搜索树
 二叉树的层平均值
 把二叉搜索树转换为累加树
 二叉树的直径
 翻转二叉树
 合并二叉树
 二叉树中第二小的节点
 另一个树的子树
 对称二叉树
 修剪二叉搜索树
 二叉搜索树的最近公共祖先
 不同的搜索二叉树
 完全二叉树的节点个数
 删除二叉搜索树中的节点
 二叉搜索树中第K小的元素
 在每个树行中找最大值
 求根到叶子节点数字之和
 验证二叉搜索树
 二叉树的最大路径和
 最长同值路径
 二叉树的最近公共祖先
如何实现反向DNS查找缓存
如何在二叉排序树中找出第一个大于中间值的结点
如何复制二叉树


9.动态规划与贪心算法
最大连续乘积子数组
字符串编辑距离
格子取数问题
交替字符串
最长公共子序列
背包问题
如何组合1,5,15和为100
矩阵的最小路径和
换钱的最少货币数


10.图
判断欧拉回路
求一个有向连通图的割点,割点的定义是,如果除去此节点和与其相关的边,有向图不再连通,描述算法


11.经典综合面试算法
大数乘法
八皇后
新娘新郎
进制转换
石子合并
最少硬币
海盗分金
男女比例
平面上 N 个点,没两个点都确定一条直线,求出斜率最大的那条直线所通过的两个点

12数学面试算法
金刚坐飞机
瓷砖盖地板
磁带文件存放
蚂蚁爬杆
三角测试
挖雷游戏
数独
连连看
电梯调度
光影切割
丢棋子问题
画匠问题
Manacher算法

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹成学院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值