算法

With attribution to Top 10 Algorithms for Coding Interview . Actually algorithms are just like maths, the more you do, the more you learn. You have to have some truly great and good number of algorithms to pump up your skills. The task never ends at
--Two Pointers--1) Rotate Array, Reverse Words in a String2) Evaluate Reverse Polish Notation (Stack)3) Isomorphic Strings4) Word Ladder (BFS), Word Ladder II (BFS)5) Median of Two Sorted Arrays5) Kth Largest Element in an Array6) Wildcard Matching, Regular Expression Matching7) Merge Intervals, Insert Interval9) Two Sum, Two Sum II, Two Sum III, 3Sum, 4Sum10) 3Sum Closest11) String to Integer12) Merge Sorted Array13) Valid Parentheses13) Longest Valid Parentheses14) Implement strStr()15) Minimum Size Subarray Sum16) Search Insert Position17) Longest Consecutive Sequence18) Valid Palindrome19) ZigZag Conversion20) Add Binary 21) Length of Last Word22) Triangle24) Contains Duplicate: I, II, III25) Remove Duplicates from Sorted Array: I, II, Remove Element , Move Zeroes27) Longest Substring Without Repeating Characters28) Longest Substring that contains 2 unique characters [Google]28) Substring with Concatenation of All Words29) Minimum Window Substring31) Find Minimum in Rotated Sorted Array: I, II32) Search in Rotated Array:I, II33) Min Stack34) Majority Element: I, II35) Bulls and Cows 36) Largest Rectangle in Histogram37) Longest Common Prefix [Google]38) Largest Number39) Simplify Path40) Compare Version Numbers41) Gas Station44) Pascal's Triangle: I, II45) Container With Most Water45) Candy [Google]45) Trapping Rain Water46) Count and Say47) Search for a Range48) Basic Calculator, Basic Calculator II49) Group Anagrams50) Shortest Palindrome51) Rectangle Area52) Summary Ranges53) Increasing Triplet Subsequence54) Get Target Using Number List And Arithmetic Operations 55) Reverse Vowels of a String 56) Flip Game, Flip Game II57) Missing Number, Find the duplicate number, First Missing Positive 58) Valid Anagram, Group Shifted Strings59) Top K Frequent Elements60) Find Peak Element61) Word Pattern, Word Pattern II62) H-Index , H-Index II63) Palindrome Pairs64) One Edit Distance65) Scramble String66) First Bad Version67) Integer to English Words68) Text Justification 69) Remove Invalid Parentheses70) Intersection of Two Arrays, Intersection of Two Arrays II71) Sliding Window Maximum, Moving Average from Data Stream72) Guess Number Higher or Lower
2. Matrix
Common methods to solve matrix related problem include DFS, BFS, dynamic programming, etc.
Classic Problems:1) Set Matrix Zeroes2) Spiral Matrix2) Spiral Matrix II3) Search a 2D Matrix3) Search a 2D Matrix II4) Rotate Image [Palantir]5) Valid Sudoku 6) Minimum Path Sum (DP) [Google]7) Unique Paths (DP) [Google]7) Unique Paths II (DP)8) Number of Islands (DFS/BFS), Number of Islands II (Disjoint Set), Number of Connected Components in an Undirected Graph9) Surrounded Regions (BFS)10) Maximal Rectangle10) Maximal Square11) Word Search (DFS)11) Word Search II13) Range Sum Query 2D – Immutable14) Longest Increasing Path in a Matrix (DFS)15) Shortest Distance from All Buildings16) Game of Life17) Paint House, Paint House II18) Sudoku Solver (DFS)19) Walls and Gates (DFS/BFS)20) Tic-Tac-Toe21) Best Meeting Point
Classic Problems:0) Implement a Stack Using an Array1) Add Two Numbers2) Reorder List3) Linked List Cycle4) Copy List with Random Pointer5) Merge Two Sorted Lists6) Odd Even Linked List7) Remove Duplicates from Sorted List7) Remove Duplicates from Sorted List II8) Partition List9) LRU Cache10) Intersection of Two Linked Lists11) Remove Linked List Elements12) Swap Nodes in Pairs13) Reverse Linked List, Reverse Linked List II, Print Linked List in Reversed Order14) Remove Nth Node From End of List (Fast-Slow Pointers)15) Implement Stack using Queues15) Implement Queue using Stacks16) Palindrome Linked List17) Implement a Queue using an Array18) Delete Node in a Linked List19) Reverse Nodes in k-Group
4.1 Tree

  1. Binary Tree Traversal:
    Preorder, Inorder, Postorder, Level Order, Level Order II, Vertical Order2) Invert Binary Tree3) Kth Smallest Element in a BST4) Binary Tree Longest Consecutive Sequence5) Validate Binary Search Tree6) Flatten Binary Tree to Linked List7) Path Sum (DFS or BFS)7) Path Sum II (DFS) 8) Construct Binary Tree from Inorder and Postorder Traversal8) Construct Binary Tree from Preorder and Inorder Traversal9) Convert Sorted Array to Binary Search Tree [Google]10) Convert Sorted List to Binary Search Tree [Google]11) Minimum Depth of Binary Tree12) Binary Tree Maximum Path Sum *13) Balanced Binary Tree14) Symmetric Tree15) Binary Search Tree Iterator 16) Binary Tree Right Side View17) Lowest Common Ancestor of a Binary Search Tree18) Lowest Common Ancestor of a Binary Tree19) Verify Preorder Serialization of a Binary Tree20) Populating Next Right Pointers in Each Node 21) Populating Next Right Pointers in Each Node II 21) Unique Binary Search Trees (DP)21) Unique Binary Search Trees II (DFS)22) Sum Root to Leaf Numbers (DFS)23) Count Complete Tree Nodes 24) Closest Binary Search Tree Value25) Binary Tree Paths26) Maximum Depth of Binary Tree27 Recover Binary Search Tree28) Same Tree29) Serialize and Deserialize Binary Tree30) Inorder Successor in BST31) Find Leaves of Binary Tree32) Largest BST Subtree
    4.2 Heap
    1) Merge k sorted arrays [Google]2) Merge k Sorted Lists *3) Find Median from Data Stream4) Meeting Rooms II, Meeting Rooms5) Range Addition
    4.3 Trie
    1) Implement Trie (Prefix Tree)2) Add and Search Word - Data structure design (DFS)
    4.4 Segment Tree
    1) Range Sum Query - Mutable2) The Skyline Problem
    Sorting
    1) Mergesort2) Quicksort3) InsertionSort.4) Maximum Gap (Bucket Sort)5) Sort Colors (Counting Sort)

你可能感兴趣的:(算法)