参与:李亚洲、微胖、蒋思源 该资源是算法、数据结构以及面试问题解决方案的集合,里面的 repository 包含了我对常见算法问题的解答以及数据结构的实现(用 Java)。该资源集合处于持续更新中。 项目地址:https://github.com/sherxon/AlgoDS 目前为止,atv,该资源集合提供了算法、数据结构以及 200 道面试题的答案。 问题 问题被分成了三个等级: 简单问题: 中等问题: 困难问题: 问题方向 针对以下不同面试问题,各自的链接中都给出了解决方案。 阵列(Arrays) 旋转阵列(Rotate Array): Contains Duplicate: 发现峰值元素: 最大化子阵列(Maximum Subarray): 阵列中第 k 最大的元素(Kth Largest Element in an Array): 搜索阵列中的所有 Duplicates: 最长增长子序列(Longest Increasing Subsequence): 旋转图像、矩阵(Rotate Image, matrix): 搅乱阵列(Shuffle an Array): 在旋转阵列中搜索最小值: 在旋转阵列中搜索: 链表(linked list) 单链表实现: 双向链表实现(Doubly Linked List): 删除链表中的结点: 回文链表(Palindrome Linked List): 反向链表(Reverse Linked List): 两个链表的交集点(Intersection of Two Linked Lists): 链表循环: 从表的底部一处 Nth 节点: 合并分类链表(Merge Sort List): 发现链表循环: 合并 k 分类列表: 其他有关列表的问题: 二叉树(Binary Tree) 二叉树的层次遍历(Binary Tree Level Order Traversal): 左叶节点求和(Sum of Left Leaves): 二叉树转置(Invert Binary Tree): 二叉搜索树迭代器(Binary Search Tree Iterator): 二叉树后序遍历(Binary Tree Postorder Traversal): 二叉树前序遍历(Binary Tree Preorder Traversal): 平面化二叉树为链表(Flatten Binary Tree to Linked List): 对称树(Symmetric Tree): 二叉树中序遍历(Binary Tree Inorder Traversal): 相似树(Same Tree): 二叉树最大深度(Maximum Depth of Binary Tree): 平衡二叉树(Balanced Binary Tree): 二叉树最小深度(Minimum Depth of Binary Tree): 平衡二叉搜索树排序列表(Sorted List to Balanced Binary Search Tree): 验证二叉搜索树(Validate Binary Search Tree): 平衡搜索树排序列表(Sorted List to Balanced BST): 平衡搜索树第 k 最小元素(Kth Smallest Element in a BST): 二叉树的之字形层序遍历(Binary Tree Zigzag Level Order Traversal): 平衡搜索树的结点删除(Delete Node in a BST): 平衡树的最小公共祖先(Lowest Common Ancestor of BST): 二叉树的左视图(Binary Tree Left Side View): 二叉树的右视图(Binary Tree Right Side View): 平衡搜索树的众数(Mode in BST): 最高频率子树和(Most Frequent Subtree Sum): 搜寻每行最大元素(Find Largest Element in Each Row): 其他树型问题: 数学 整数拆分(Integer Break): 逆位(Reverse Bits): 回文数:(Palindrome Number): 幂(Math.pow): 壶和水的问题(Jug and Water Problem): 爱拉托逊新筛法(Sieve of Eratosthenes): 费马素数(Fermat's primality): 评估逆波兰式表示法(Evaluate Reverse Polish Notation): 堆栈&队列(Stack & Queue) 最小堆栈: 最小队列: 使用队列实现堆栈: 使用堆栈实现队列: 动态编程(Dynamic Programming) 斐波那契数列: 词内换行(word break): 子集和: 0/1 渐缩问题: 最短回文(KMP): MISC 并查: 排列: 子集: 算法方向 排序与搜索(Sorting And Searching) 上推排序: 插入排序: 选择排序: 计算排序: 二叉搜索,上下界: 归并排序: 快速排序: 图(Graphs) 宽度优先搜索(BFS): 深度优先搜索(DFS): Prim 最小生成树(MST): KrusKal 最小生成树(MST):无 拓扑排序: 最短路径的戴克斯特拉算法(Dijsktra): 最短路径的 Bellman-Ford 算法: 启发式路径搜索(Heuristic Path Finding): 二分图: 字符串(String) Rabin Karp 序列搜索: Ransom Note: 逆字符串(Reverse String): 最长公共前缀(Longest Common Prefix): Is 易位构词(Anagram): Needle and Haystack: 词内换行(word break): 数据结构 树(Trees) 二叉搜索树(递归): 二叉搜索树(迭代): AVL 树: Trie(Prefix 树): 本文为机器之心编译,atv,转载请联系本公众号获得授权。 ?------------------------------------------------ 加入机器之心(全职记者/实习生):[email protected] 投稿或寻求报道:[email protected] 广告&商务合作:[email protected] (责任编辑:本港台直播) |