> For the complete documentation index, see [llms.txt](https://aaronice.gitbook.io/lintcode/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aaronice.gitbook.io/lintcode/master.md).

# Introduction

## Algorithm and Data Structure Notes

\#algorithm# #datastructure# #数据结构和算法#

Problems coming from LeetCode, LintCode, TopCoder, CtCi, etc.

**Disclaimer:**

1. Under construction
2. Some solutions, comments, concepts, explanation, analysis may come from Internet, discussion forums
3. Personal use only, for learning purpose

### Contents

## Summary

* [Introduction](/lintcode/master.md)
* [Linked List](/lintcode/linked_list.md)
* [Sort List](/lintcode/linked_list/sort_list.md)
* [Merge Two Sorted Lists](/lintcode/linked_list/merge-two-sorted-lists.md)
* [Merge k Sorted Lists](/lintcode/heap/merge_k_sorted_lists.md)
* [Linked List Cycle](/lintcode/linked_list/linked_list_cycle.md)
* [Linked List Cycle II](/lintcode/linked_list/linked_list_cycle_ii.md)
* [Add Two Numbers II](/lintcode/linked_list/add_two_numbers_ii.md)
* [Add Two Numbers](/lintcode/linked_list/add-two-numbers.md)
* [Odd Even Linked List](/lintcode/linked_list/odd-even-linked-list.md)
* [Intersection of Two Linked Lists](/lintcode/linked_list/intersection-of-two-linked-lists.md)
* [Reverse Linked List](/lintcode/linked_list/reverse-linked-list.md)
* [Reverse Linked List II](/lintcode/linked_list/reverse-linked-list-ii.md)
* [Remove Linked List Elements](/lintcode/linked_list/remove-linked-list-elements.md)
* [Remove Nth Node From End of List](/lintcode/linked_list/remove-nth-node-from-end-of-list.md)
* [Middle of the Linked List](/lintcode/linked_list/middle-of-the-linked-list.md)
* [Design Linked List](/lintcode/linked_list/design-linked-list.md)
* [Design Singly Linked List](/lintcode/linked_list/design-linked-list/design-singly-linked-list.md)
* [Design Doubly Linked List](/lintcode/linked_list/design-linked-list/design-doubly-linked-list.md)
* [Palindrome Linked List](/lintcode/linked_list/palindrome-linked-list.md)
* [Remove Duplicates from Sorted List](/lintcode/linked_list/remove-duplicates-from-sorted-list.md)
* [Remove Duplicates from Sorted List II](/lintcode/linked_list/remove-duplicates-from-sorted-list-ii.md)
* [Implement Stack Using Singly Linked List](/lintcode/linked_list/implement-stack-using-singly-linked-list.md)
* [Copy List with Random Pointer](/lintcode/linked_list/copy-list-with-random-pointer.md)
* [Binary Search](/lintcode/binary-search.md)
* [Search in Rotated Sorted Array](/lintcode/binary-search/search-in-rotated-sorted-array.md)
* [Search in Rotated Sorted Array II](/lintcode/binary-search/search-in-rotated-sorted-array-ii.md)
* [Search in a Sorted Array of Unknown Size](/lintcode/binary-search/search-in-a-sorted-array-of-unknown-size.md)
* [First Bad Version](/lintcode/binary-search/first-bad-version.md)
* [Find Minimum in Rotated Sorted Array](/lintcode/binary-search/find-minimum-in-rotated-sorted-array.md)
* [Find Minimum in Rotated Sorted Array II](/lintcode/binary-search/find-minimum-in-rotated-sorted-array-ii.md)
* [Find Peak Element](/lintcode/binary-search/find-peak-element.md)
* [Search for a Range](/lintcode/binary-search/search-for-a-range.md)
* [Find K Closest Elements](/lintcode/binary-search/find-k-closest-elements.md)
* [Search Insert Position](/lintcode/binary-search/search-insert-position.md)
* [Peak Index in a Mountain Array](/lintcode/binary-search/peak-index-in-a-mountain-array.md)
* [Heaters](/lintcode/binary-search/heaters.md)
* [Hash Table](/lintcode/hash-table.md)
* [Jewels and Stones](/lintcode/hash-table/jewels-and-stones.md)
* [Single Number](/lintcode/hash-table/single-number.md)
* [Subdomain Visit Count](/lintcode/hash-table/subdomain-visit-count.md)
* [Design HashMap](/lintcode/hash-table/design-hashmap.md)
* [Design HashSet](/lintcode/hash-table/design-hashset.md)
* [Logger Rate Limiter](/lintcode/hash-table/logger-rate-limiter.md)
* [Isomorphic Strings](/lintcode/hash-table/isomorphic-strings.md)
* [Minimum Index Sum of Two Lists](/lintcode/hash-table/minimum-index-sum-of-two-lists.md)
* [Contains Duplicate II](/lintcode/hash-table/contains-duplicate-ii.md)
* [Contains Duplicate III](/lintcode/hash-table/contains-duplicate-iii.md)
* [Longest Consecutive Sequence](/lintcode/hash-table/longest_consecutive_sequence.md)
* [Valid Sudoku](/lintcode/hash-table/valid-sudoku.md)
* [Distribute Candies](/lintcode/hash-table/distribute-candies.md)
* [Shortest Word Distance](/lintcode/hash-table/shortest-word-distance.md)
* [Shortest Word Distance II](/lintcode/hash-table/shortest-word-distance-ii.md)
* [String](/lintcode/string.md)
* [Rotate String](/lintcode/string/rotate-string.md)
* [Add Binary](/lintcode/string/add-binary.md)
* [Implement strStr()](/lintcode/string/implement-strstr.md)
* [Longest Common Prefix](/lintcode/string/longest-common-prefix.md)
* [Reverse Words in a String](/lintcode/string/reverse-words-in-a-string.md)
* [Reverse Words in a String II](/lintcode/string/reverse-words-in-a-string-ii.md)
* [Reverse Words in a String III](/lintcode/string/reverse-words-in-a-string-iii.md)
* [Valid Word Abbreviation](/lintcode/string/valid-word-abbreviation.md)
* [Group Anagrams](/lintcode/string/group-anagrams.md)
* [Unique Email Addresses](/lintcode/string/unique-email-addresses.md)
* [Next Closest Time](/lintcode/string/next-closest-time.md)
* [License Key Formatting](/lintcode/string/license-key-formatting.md)
* [String to Integer - atoi](/lintcode/string/string-to-integer-atoi.md)
* [Ransom Note](/lintcode/string/ransom-note.md)
* [Multiply Strings](/lintcode/string/multiply-strings.md)
* [Text Justification](/lintcode/string/text-justification.md)
* [Reorder Log Files](/lintcode/string/reorder-log-files.md)
* [Most Common Word](/lintcode/string/most-common-word.md)
* Valid Parenthesis String
* [K-Substring with K different characters](/lintcode/string/k-substring-with-k-different-characters.md)
* [Find All Anagrams in a String](/lintcode/string/find-all-anagrams-in-a-string.md)
* [Find the Closest Palindrome](/lintcode/string/find-the-closest-palindrome.md)
* [Simplify Path](/lintcode/string/simplify-path.md)
* [Array](/lintcode/array.md)
* [Partition Array](/lintcode/array/partition_array.md)
* [Median of Two Sorted Arrays](/lintcode/array/median_of_two_sorted_arrays.md)
* [Intersection of Two Arrays](/lintcode/array/intersection_of_two_arrays.md)
* [Intersection of Two Arrays II](/lintcode/array/intersection_of_two_arrays_ii.md)
* [Maximum Subarray Sum](/lintcode/array/maximum_subarray_sum.md)
* [Minimum Subarray Sum](/lintcode/array/minimum-subarray-sum.md)
* [Maximum Subarray II](/lintcode/array/maximum-subarray-ii.md)
* [Maximum Subarray III](/lintcode/array/maximum-subarray-iii.md)
* [Subarray Sum Closest](/lintcode/array/subarray_sum_closest.md)
* [Subarray Sum](/lintcode/array/subarray_sum.md)
* [Plus One](/lintcode/array/plus_one.md)
* [Maximum Subarray Difference](/lintcode/array/maximum-subarray-difference.md)
* [Maximum Subarray IV](/lintcode/array/maximum-subarray-iv.md)
* [Subarray Sum Equals K](/lintcode/array/subarray-sum-equals-k.md)
* [Intersection of Two Arrays](/lintcode/array/intersection-of-two-arrays.md)
* [Intersection of Two Arrays II](/lintcode/array/intersection-of-two-arrays-ii.md)
* [Find Pivot Index](/lintcode/array/find-pivot-index.md)
* [Rotate Array](/lintcode/array/rotate-array.md)
* [Get Smallest Nonnegative Integer Not In The Array](/lintcode/array/get-smallest-nonnegative-integer-not-in-the-array.md)
* [Maximize Distance to Closest Person](/lintcode/array/maximize-distance-to-closest-person.md)
* [Sort Colors](/lintcode/array/sort-colors.md)
* [Next Permutation](/lintcode/array/next-permutation.md)
* [Rotate Image](/lintcode/array/rotate-image.md)
* [Pour Water](/lintcode/array/pour-water.md)
* [Prison Cells After N Days](/lintcode/array/active-and-inactive-cells-after-k-days.md)
* [Majority Element](/lintcode/array/majority-element.md)
* [Can Place Flowers](/lintcode/array/can-place-flowers.md)
* [Candy](/lintcode/array/candy.md)
* [Matrix](/lintcode/matrix.md)
* [Spiral Matrix](/lintcode/matrix/spiral-matrix.md)
* [Set Matrix Zeroes](/lintcode/matrix/set-matrix-zeroes.md)
* [Diagonal Traverse](/lintcode/matrix/diagonal-traverse.md)
* [Queue](/lintcode/queue.md)
* [Design Circular Queue](/lintcode/queue/design-circular-queue.md)
* [Implement Queue using Stacks](/lintcode/queue/implement-queue-using-stacks.md)
* [Implement Queue by Two Stacks](/lintcode/queue/implement_queue_by_two_stacks.md)
* [Implement Stack using Queues](/lintcode/queue/implement-stack-using-queues.md)
* [Moving Average from Data Stream](/lintcode/data_structure/moving-average-from-data-stream.md)
* [Walls and Gates](/lintcode/queue/walls-and-gates.md)
* [Open the Lock](/lintcode/queue/open-the-lock.md)
* [Sliding Window Maximum](/lintcode/data_structure/sliding_window_maximum.md)
* Implement Queue Using Fixed Length Array
* [Animal Shelter](/lintcode/data_structure/animal_shelter.md)
* [Stack](/lintcode/stack.md)
* [Valid Parentheses](/lintcode/stack/valid-parentheses.md)
* [Longest Valid Parentheses](/lintcode/stack/longest-valid-parentheses.md)
* [Min Stack](/lintcode/stack/min_stack.md)
* [Max Stack](/lintcode/stack/max-stack.md)
* [Daily Temperatures](/lintcode/stack/daily-temperatures.md)
* [Evaluate Reverse Polish Notation](/lintcode/stack/evaluate-reverse-polish-notation.md)
* [Next Greater Element I](/lintcode/stack/next-greater-element-i.md)
* [Next Greater Element II](/lintcode/stack/next-greater-element-ii.md)
* [Next Greater Element III](/lintcode/stack/next-greater-element-iii.md)
* [Largest Rectangle in Histogram](/lintcode/stack/largest_rectangle_in_histogram.md)
* [Maximal Rectangle](/lintcode/stack/maximal-rectangle.md)
* [Car Fleet](/lintcode/stack/car-fleet.md)
* [Heap](/lintcode/heap.md)
* [Trapping Rain Water II](/lintcode/heap/trapping_rain_water_ii.md)
* [The Skyline Problem](/lintcode/heap/the-skyline-problem.md)
* [Top K Frequent Words](/lintcode/heap/top-k-frequent-words.md)
* [Top K Frequent Words II](/lintcode/heap/top-k-frequent-words-ii.md)
* [Top K Frequent Elements](/lintcode/heap/top-k-frequent-elements.md)
* [Top k Largest Numbers](/lintcode/heap/top_k_largest_numbers.md)
* [Top k Largest Numbers II](/lintcode/heap/top_k_largest_numbers_ii.md)
* [Minimum Cost to Hire K Workers](/lintcode/heap/minimum-cost-to-hire-k-workers.md)
* [Kth Largest Element in an Array](/lintcode/heap/kth_largest_element.md)
* [Kth Smallest Number in Sorted Matrix](/lintcode/heap/kth_smallest_number_in_sorted_matrix.md)
* [Kth Smallest Sum In Two Sorted Arrays](/lintcode/heap/kth_smallest_sum_in_two_sorted_arrays.md)
* [K Closest Points to the Origin](/lintcode/heap/k-closest-points-to-the-origin.md)
* [Merge K Sorted Lists](/lintcode/heap/merge_k_sorted_lists.md)
* [Merge K Sorted Arrays](/lintcode/heap/merge-k-sorted-arrays.md)
* [Top K Frequent Words - Map Reduce](/lintcode/heap/top-k-frequent-words-map-reduce.md)
* [Data Structure & Design](/lintcode/data_structure.md)
* [Hash Function](/lintcode/data_structure/hash_function.md)
* [Heapify](/lintcode/data_structure/heapify.md)
* [LRU Cache](/lintcode/data_structure/lru_cache.md)
* [LFU Cache](/lintcode/data_structure/lfu_cache.md)
* [Rehashing](/lintcode/data_structure/rehashing.md)
* [Stack Sorting](/lintcode/data_structure/stack_sorting.md)
* [Animal Shelter](/lintcode/data_structure/animal_shelter.md)
* [Sliding Window Maximum](/lintcode/data_structure/sliding_window_maximum.md)
* [Moving Average from Data Stream](/lintcode/data_structure/moving-average-from-data-stream.md)
* [Find Median from Data Stream](/lintcode/data_structure/data_stream_median.md)
* [Sliding Window Median](/lintcode/data_structure/sliding-window-median.md)
* [Design Hit Counter](/lintcode/data_structure/design-hit-counter.md)
* [Read N Characters Given Read4 II - Call multiple times](/lintcode/data_structure/read-n-characters-given-read4-ii-call-multiple-times.md)
* [Read N Characters Given Read4](/lintcode/data_structure/read-n-characters-given-read4.md)
* [Flatten 2D Vector](/lintcode/data_structure/flatten-2d-vector.md)
* [Flatten Nested List Iterator](/lintcode/data_structure/flatten-nested-list-iterator.md)
* [Design Search Autocomplete System](/lintcode/trie/design-search-autocomplete-system.md)
* [Time Based Key-Value Store](/lintcode/data_structure/time-based-key-value-store.md)
* [Design Tic-Tac-Toe](/lintcode/data_structure/design-tic-tac-toe.md)
* [Insert Delete GetRandom O(1)](/lintcode/data_structure/insert-delete-getrandom-o1.md)
* [Union Find](/lintcode/union_find.md)
* [Find the Connected Component in the Undirected Graph](/lintcode/union_find/find_the_connected_component_in_the_undirected_graph.md)
* [Find the Weak Connected Component in the Directed Graph](/lintcode/union_find/find_the_weak_connected_component_in_the_directed_graph.md)
* [Graph Valid Tree](/lintcode/union_find/graph_valid_tree.md)
* [Number of Islands](/lintcode/graph_search/number_of_islands.md)
* [Number of Islands II](/lintcode/union_find/number_of_islands_ii.md)
* [Surrounded Regions](/lintcode/union_find/surrounded_regions.md)
* [Most Stones Removed with Same Row or Column](/lintcode/graph_search/most-stones-removed-with-same-row-or-column.md)
* [Redundant Connection](/lintcode/union_find/redundant-connection.md)
* [Trie](/lintcode/trie.md)
* [Implement Trie](/lintcode/trie/implement_trie.md)
* [Add and Search Word](/lintcode/trie/add_and_search_word.md)
* [Word Search II](/lintcode/trie/word_search_ii.md)
* [Longest Word in Dictionary](/lintcode/trie/longest-word-in-dictionary.md)
* [Palindrome Pairs](/lintcode/trie/palindrome-pairs.md)
* [Trie Serialization](/lintcode/trie/trie-serialization.md)
* [Trie Service](/lintcode/trie/trie-service.md)
* [Design Search Autocomplete System](/lintcode/trie/design-search-autocomplete-system.md)
* [Typeahead](/lintcode/trie/typeahead.md)
* [Trees](/lintcode/trees.md)
* [Binary Tree Inorder Traversal](/lintcode/trees/binary-tree-inorder-traversal.md)
* [Binary Tree Postorder Traversal](/lintcode/trees/binary-tree-postorder-traversal.md)
* [Binary Tree Preorder Traversal](/lintcode/trees/binary-tree-preorder-traversal.md)
* [Binary Tree Level Order Traversal](/lintcode/trees/binary-tree-level-order-traversal.md)
* [Binary Tree Zigzag Level Order Traversal](/lintcode/trees/binary-tree-zigzag-level-order-traversal.md)
* [Binary Tree Vertical Order Traversal](/lintcode/trees/binary-tree-vertical-order-traversal.md)
* [N-ary Tree Level Order Traversal](/lintcode/trees/n-ary-tree-level-order-traversal.md)
* [N-ary Tree Preorder Traversal](/lintcode/trees/n-ary-tree-preorder-traversal.md)
* [N-ary Tree Postorder Traversal](/lintcode/trees/n-ary-tree-postorder-traversal.md)
* [Construct Binary Tree from Preorder and Inorder Traversal](/lintcode/trees/construct-binary-tree-from-preorder-and-inorder-traversal.md)
* [Populating Next Right Pointers in Each Node](/lintcode/trees/populating-next-right-pointers-in-each-node.md)
* [Populating Next Right Pointers in Each Node II](/lintcode/trees/populating-next-right-pointers-in-each-node-ii.md)
* [Maximum Depth of Binary Tree](/lintcode/trees/maximum-depth-of-binary-tree.md)
* [Symmetric Tree](/lintcode/trees/symmetric-tree.md)
* [Validate Binary Search Tree](/lintcode/trees/validate-binary-search-tree.md)
* [Convert Sorted Array to Binary Search Tree](/lintcode/trees/convert-sorted-array-to-binary-search-tree.md)
* [Path Sum](/lintcode/trees/path-sum.md)
* [Path Sum II](/lintcode/trees/path-sum-ii.md)
* [Path Sum III](/lintcode/trees/path-sum-iii.md)
* [Binary Tree Maximum Path Sum](/lintcode/trees/binary-tree-maximum-path-sum.md)
* [Kth Smallest Element in a BST](/lintcode/trees/kth-smallest-element-in-a-bst.md)
* [Same Tree](/lintcode/trees/same-tree.md)
* [Lowest Common Ancestor of a Binary Tree](/lintcode/trees/lowest-common-ancestor-of-a-binary-tree.md)
* [Lowest Common Ancestor of a Binary Search Tree](/lintcode/trees/lowest-common-ancestor-of-a-binary-search-tree.md)
* [Nested List Weight Sum II](/lintcode/trees/nested-list-weight-sum-ii.md)
* [BST Node Distance](/lintcode/trees/bst-node-distance.md)
* [Minimum Distance (Difference) Between BST Nodes](/lintcode/trees/minimum-distance-difference-between-bst-nodes.md)
* [Closet Common Manager](/lintcode/trees/closet-common-manager.md)
* N-ary Tree Postorder Traversal
* [Serialize and Deserialize Binary Tree](/lintcode/trees/serialize-and-deserialize-binary-tree.md)
* [Serialize and Deserialize N-ary Tree](/lintcode/trees/serialize-and-deserialize-n-ary-tree.md)
* [Diameter of a Binary Tree](/lintcode/trees/diameter-of-a-binary-tree.md)
* [Print Binary Trees](/lintcode/trees/print-binary-trees.md)
* [Segment Tree](/lintcode/segment_tree.md)
* [Segment Tree Build](/lintcode/segment_tree/segment_tree_build.md)
* [Range Sum Query - Mutable](/lintcode/segment_tree/range-sum-query-mutable.md)
* [Binary Indexed Tree](/lintcode/binary-indexed-tree.md)
* [Graph & Search](/lintcode/graph_search.md)
* [Clone Graph](/lintcode/graph_search/clone_graph.md)
* [N Queens](/lintcode/graph_search/n_queens.md)
* [Six Degrees](/lintcode/graph_search/six_degrees.md)
* [Number of Islands](/lintcode/graph_search/number_of_islands.md)
* [Number of Distinct Islands](/lintcode/graph_search/number-of-distinct-islands.md)
* [Word Search](/lintcode/graph_search/word_search.md)
* [Course Schedule](/lintcode/graph_search/course-schedule.md)
* [Course Schedule II](/lintcode/graph_search/course-schedule-ii.md)
* [Word Ladder](/lintcode/graph_search/word-ladder.md)
* [Redundant Connection](/lintcode/graph_search/redundant-connection.md)
* [Redundant Connection II](/lintcode/graph_search/redundant-connection-ii.md)
* [Longest Increasing Path in a Matrix](/lintcode/graph_search/longest-increasing-path-in-a-matrix.md)
* [Reconstruct Itinerary](/lintcode/graph_search/reconstruct-itinerary.md)
* [The Maze](/lintcode/graph_search/the-maze.md)
* [The Maze II](/lintcode/graph_search/the-maze-ii.md)
* [The Maze III](/lintcode/graph_search/the-maze-iii.md)
* [Topological Sorting](/lintcode/graph_search/topological-sorting.md)
* [Island Perimeter](/lintcode/graph_search/island-perimeter.md)
* [Flood Fill](/lintcode/graph_search/flood-fill.md)
* [Cheapest Flights Within K Stops](/lintcode/graph_search/cheapest-flights-within-k-stops.md)
* [Evaluate Division](/lintcode/graph_search/evaluate-division.md)
* [Alien Dictionary](/lintcode/graph_search/alien-dictionary.md)
* [Cut Off Trees for Golf Event](/lintcode/graph_search/cut-off-trees-for-golf-event.md)
* [Jump Game II](/lintcode/greedy/jump-game-ii.md)
* [Most Stones Removed with Same Row or Column](/lintcode/graph_search/most-stones-removed-with-same-row-or-column.md)
* [Backtracking](/lintcode/backtracking.md)
* [Subsets](/lintcode/backtracking/subsets.md)
* [Subsets II](/lintcode/backtracking/subsets-ii.md)
* [Letter Combinations of a Phone Number](/lintcode/backtracking/letter-combinations-of-a-phone-number.md)
* [Permutations](/lintcode/backtracking/permutations.md)
* [Permutations II](/lintcode/backtracking/permutations-ii.md)
* [Combinations](/lintcode/backtracking/combinations.md)
* [Combination Sum](/lintcode/backtracking/combination-sum.md)
* [Combination Sum II](/lintcode/backtracking/combination-sum-ii.md)
* [Combination Sum III](/lintcode/backtracking/combination-sum-iii.md)
* [Combination Sum IV](/lintcode/backtracking/combination-sum-iv.md)
* [N-Queens](/lintcode/backtracking/n-queens.md)
* [N-Queens II](/lintcode/backtracking/n-queens-ii.md)
* [Generate Parentheses](/lintcode/backtracking/generate-parentheses.md)
* [Subsets of Size K](/lintcode/backtracking/subsets-of-size-k.md)
* [Two Pointers](/lintcode/two_pointers.md)
* [Two Sum II](/lintcode/two_pointers/two_sum_ii.md)
* [Triangle Count](/lintcode/two_pointers/triangle_count.md)
* [Trapping Rain Water](/lintcode/two_pointers/trapping_rain_water.md)
* [Container with Most Water](/lintcode/two_pointers/container_with_most_water.md)
* [Minimum Size Subarray Sum](/lintcode/two_pointers/minimum_size_subarray_sum.md)
* [Minimum Window Substring](/lintcode/two_pointers/minimum_window_substring.md)
* [Longest Substring Without Repeating Characters](/lintcode/two_pointers/longest_substring_without_repeating_characters.md)
* [Longest Substring with At Most K Distinct Characters](/lintcode/two_pointers/longest_substring_with_at_most_k_distinct_characters.md)
* [Longest Substring with At Most Two Distinct Characters](/lintcode/two_pointers/longest-substring-with-at-most-two-distinct-characters.md)
* [Fruit Into Baskets](/lintcode/two_pointers/fruit-into-baskets.md)
* [Nuts & Bolts Problem](/lintcode/two_pointers/nuts_and_bolts_problem.md)
* [Valid Palindrome](/lintcode/two_pointers/valid_palindrome.md)
* [The Smallest Difference](/lintcode/two_pointers/the_smallest_difference.md)
* [Reverse String](/lintcode/two_pointers/reverse-string.md)
* [Remove Element](/lintcode/two_pointers/remove-element.md)
* [Max Consecutive Ones](/lintcode/two_pointers/max-consecutive-ones.md)
* [Max Consecutive Ones II](/lintcode/two_pointers/max-consecutive-ones-ii.md)
* [Remove Duplicates from Sorted Array](/lintcode/two_pointers/remove-duplicates-from-sorted-array.md)
* [Remove Duplicates from Sorted Array II](/lintcode/two_pointers/remove-duplicates-from-sorted-array-ii.md)
* [Move Zeroes](/lintcode/two_pointers/move-zeroes.md)
* [Longest Repeating Character Replacement](/lintcode/two_pointers/longest-repeating-character-replacement.md)
* [3Sum With Multiplicity](/lintcode/two_pointers/3sum-with-multiplicity.md)
* [Merge Sorted Array](/lintcode/two_pointers/merge-sorted-array.md)
* [3Sum Smaller](/lintcode/two_pointers/3sum-smaller.md)
* [Backspace String Compare](/lintcode/two_pointers/backspace-string-compare.md)
* [Mathematics](/lintcode/mathematics.md)
* [Ugly Number](/lintcode/mathematics/ugly_number.md)
* [Ugly Number II](/lintcode/mathematics/ugly_number_ii.md)
* [Super Ugly Number](/lintcode/mathematics/super-ugly-number.md)
* [Sqrt(x)](/lintcode/mathematics/sqrt_x.md)
* [Random Number 1 to 7 With Equal Probability](/lintcode/mathematics/random-number-1-to-7-with-equal-probability.md)
* [Pow(x, n)](/lintcode/mathematics/powx-n.md)
* [Narcissistic Number](/lintcode/mathematics/narcissistic-number.md)
* [Rectangle Overlap](/lintcode/mathematics/rectangle-overlap.md)
* [Happy Number](/lintcode/mathematics/happy-number.md)
* [Add N Days to Given Date](/lintcode/mathematics/add-n-days-to-given-date.md)
* [Reverse Integer](/lintcode/mathematics/reverse-integer.md)
* [Greatest Common Divisor or Highest Common Factor](/lintcode/mathematics/greatest-common-divisor-or-highest-common-factor.md)
* [Bit Operation](/lintcode/bit-operation.md)
* [IP to CIDR](/lintcode/bit-operation/ip-to-cidr.md)
* [Random](/lintcode/random.md)
* [Random Pick with Weight](/lintcode/random/random-pick-with-weight.md)
* [Random Pick Index](/lintcode/random/random-pick-index.md)
* [Linked List Random Node](/lintcode/random/linked-list-random-node.md)
* [Dynamic Programming](/lintcode/dynamic_programming.md)
* [House Robber](/lintcode/dynamic_programming/house_robber.md)
* [House Robber II](/lintcode/dynamic_programming/house_robber_ii.md)
* [House Robber III](/lintcode/dynamic_programming/house-robber-iii.md)
* [Longest Increasing Continuous Subsequence](/lintcode/dynamic_programming/longest_increasing_continuous_subsequence.md)
* [Longest Increasing Continuous Subsequence II](/lintcode/dynamic_programming/longest_increasing_continuous_subsequence_ii.md)
* [Coins in a Line](/lintcode/dynamic_programming/coins_in_a_line.md)
* [Coins in a Line II](/lintcode/dynamic_programming/coins_in_a_line_ii.md)
* [Coins in a Line III](/lintcode/dynamic_programming/coins_in_a_line_iii.md)
* [Maximum Product Subarray](/lintcode/dynamic_programming/maximum_product_subarray.md)
* [Longest Palindromic Substring](/lintcode/dynamic_programming/longest_palindromic_substring.md)
* [Stone Game](/lintcode/dynamic_programming/stone_game.md)
* [Burst Balloons](/lintcode/dynamic_programming/burst-balloons.md)
* [Perfect Squares](/lintcode/dynamic_programming/perfect-squares.md)
* [Triangle](/lintcode/dynamic_programming/triangle.md)
* [Pascal's Triangle](/lintcode/dynamic_programming/pascals-triangle.md)
* [Pascal's Triangle II](/lintcode/dynamic_programming/pascals-triangle-ii.md)
* [Min Cost Climbing Stairs](/lintcode/dynamic_programming/min-cost-climbing-stairs.md)
* [Climbing Stairs](/lintcode/dynamic_programming/climbing-stairs.md)
* [Unique Paths](/lintcode/dynamic_programming/unique-paths.md)
* [Unique Paths II](/lintcode/dynamic_programming/unique-paths-ii.md)
* [Minimum Path Sum](/lintcode/dynamic_programming/minimum-path-sum.md)
* [Word Break](/lintcode/dynamic_programming/word-break.md)
* [Word Break II](/lintcode/dynamic_programming/word-break-ii.md)
* [Range Sum Query - Immutable](/lintcode/dynamic_programming/range-sum-query-immutable.md)
* [Decode Ways](/lintcode/dynamic_programming/decode-ways.md)
* [Edit Distance](/lintcode/dynamic_programming/edit-distance.md)
* [Unique Binary Search Trees](/lintcode/dynamic_programming/unique-binary-search-trees.md)
* [Unique Binary Search Trees II](/lintcode/dynamic_programming/unique-binary-search-trees-ii.md)
* [Maximal Rectangle](/lintcode/dynamic_programming/maximal-rectangle.md)
* [Maximal Square](/lintcode/dynamic_programming/maximal-square.md)
* [Regular Expression Matching ](/lintcode/dynamic_programming/regular-expression-matching.md)
* [Wildcard Matching](/lintcode/dynamic_programming/wildcard-matching.md)
* [Flip Game II](/lintcode/dynamic_programming/flip-game-ii.md)
* [Longest Increasing Subsequence](/lintcode/dynamic_programming/longest-increasing-subsequence.md)
* [Target Sum](/lintcode/dynamic_programming/target-sum.md)
* [Partition Equal Subset Sum](/lintcode/dynamic_programming/partition-equal-subset-sum.md)
* [Coin Change](/lintcode/knapsack_problems/coin-change.md)
* [Jump Game](/lintcode/dynamic_programming/jump-game.md)
* [Can I Win](/lintcode/minimax/can-i-win.md)
* [Maximum Sum Rectangle in a 2D Matrix](/lintcode/dynamic_programming/maximum-sum-rectangle-in-a-2d-matrix.md)
* [Cherry Pick](/lintcode/dynamic_programming/cherry-pick.md)
* [Knapsack](/lintcode/knapsack_problems.md)
* [Backpack](/lintcode/knapsack_problems/backpack.md)
* [Backpack II](/lintcode/knapsack_problems/backpack_ii.md)
* [Backpack III](/lintcode/knapsack_problems/backpack-iii.md)
* [Backpack IV](/lintcode/knapsack_problems/backpack-iv.md)
* [Backpack V](/lintcode/knapsack_problems/backpack-v.md)
* [Backpack VI ](/lintcode/knapsack_problems/backpack-vi.md)
* [Backpack VII](/lintcode/knapsack_problems/backpack-vii.md)
* [Coin Change](/lintcode/knapsack_problems/coin-change.md)
* [Coin Change II](/lintcode/knapsack_problems/coin-change-ii.md)
* [High Frequency](/lintcode/high_frequency.md)
* [2 Sum Closest](/lintcode/high_frequency/2sum_closest.md)
* [3 Sum](/lintcode/high_frequency/3sum.md)
* [3 Sum Closest](/lintcode/high_frequency/3sum_closest.md)
* [Sort Colors II](/lintcode/high_frequency/sort_colors_ii.md)
* [Majority Number](/lintcode/high_frequency/majority_number.md)
* [Majority Number II](/lintcode/high_frequency/majority_number_ii.md)
* [Majority Number III](/lintcode/high_frequency/majority_number_iii.md)
* [Best Time to Buy and Sell Stock](/lintcode/high_frequency/best_time_to_buy_and_sell_stock.md)
* [Best Time to Buy and Sell Stock II](/lintcode/high_frequency/best_time_to_buy_and_sell_stock_ii.md)
* [Best Time to Buy and Sell Stock III](/lintcode/high_frequency/best_time_to_buy_and_sell_stock_iii.md)
* [Best Time to Buy and Sell Stock IV](/lintcode/high_frequency/best_time_to_buy_and_sell_stock_iv.md)
* [Two Sum](/lintcode/high_frequency/two-sum.md)
* [Two Sum II - Input array is sorted](/lintcode/high_frequency/two-sum-ii-input-array-is-sorted.md)
* [Two Sum III - Data structure design](/lintcode/high_frequency/two-sum-iii-data-structure-design.md)
* [Two Sum IV - Input is a BST](/lintcode/high_frequency/two-sum-iv-input-is-a-bst.md)
* [4 Sum](/lintcode/high_frequency/4-sum.md)
* [4 Sum II](/lintcode/high_frequency/4-sum-ii.md)
* [Sorting](/lintcode/sorting.md)
* Greedy
* [Jump Game II](/lintcode/greedy/jump-game-ii.md)
* [Remove K Digits](/lintcode/greedy/remove-k-digits.md)
* Minimax
* [Nim Game](/lintcode/minimax/nim-game.md)
* [Can I Win](/lintcode/minimax/can-i-win.md)
* [Sweep Line & Interval](/lintcode/sweep-line.md)
* [Meeting Rooms](/lintcode/sweep-line/meeting-rooms.md)
* [Meeting Rooms II](/lintcode/sweep-line/meeting-rooms-ii.md)
* [Merge Intervals](/lintcode/sweep-line/merge-intervals.md)
* [Insert Interval](/lintcode/sweep-line/insert-interval.md)
* [Number of Airplanes in the Sky](/lintcode/sweep-line/number_of_airplanes_in_the_sky.md)
* [Exam Room](/lintcode/sweep-line/exam-room.md)
* [Employee Free Time](/lintcode/sweep-line/employee-free-time.md)
* [Closest Pair of Points](/lintcode/sweep-line/closest-pair-of-points.md)
* [My Calendar I](/lintcode/sweep-line/my-calendar-i.md)
* [My Calendar II](/lintcode/sweep-line/my-calendar-ii.md)
* [My Calendar III](/lintcode/sweep-line/my-calendar-iii.md)
* [Add Bold Tag in String](/lintcode/sweep-line/add-bold-tag-in-string.md)
* [Other Algorithms and Data Structure](/lintcode/other-algorithms-and-data-structure.md)
* [Huffman Coding](/lintcode/other-algorithms-and-data-structure/huffman-coding.md)
* [Reservoir Sampling](/lintcode/other-algorithms-and-data-structure/reservoir-sampling.md)
* [Bloom Filter](/lintcode/other-algorithms-and-data-structure/bloom-filter.md)
* [External Sorting](/lintcode/other-algorithms-and-data-structure/external-sorting.md)
* [Construct Quad Tree](/lintcode/other-algorithms-and-data-structure/construct-quad-tree.md)
* [Company Tag](/lintcode/company-tag.md)
* [Google](/lintcode/company-tag/google.md)
* [Guess the Word](/lintcode/company-tag/google/guess-the-word.md)
* [Raindrop on Sidewalk](/lintcode/company-tag/google/raindrop-on-sidewalk.md)
* Airbnb
* [Display Pages (Pagination)](/lintcode/company-tag/airbnb/display-pages.md)
* Amazon
* [Problem Solving Summary ](/lintcode/problem-solving-summary.md)
* [String or Array Rotation](/lintcode/problem-solving-summary/string-rotation.md)
* [Tips for Avoiding Bugs ](/lintcode/problem-solving-summary/tips-for-avoiding-bugs.md)
* [Substring or Subarray Search](/lintcode/problem-solving-summary/substring-or-subarray-search.md)
* [Sliding Window](/lintcode/problem-solving-summary/sliding-window.md)
* [K Sums](/lintcode/problem-solving-summary/k-sums.md)
* [Combination Sum Series](/lintcode/problem-solving-summary/combination-sum-series.md)
* Knapsack Problems
* [Depth-first Search](/lintcode/problem-solving-summary/depth-first-search.md)
* [Large Number Operation](/lintcode/problem-solving-summary/large-number-operation.md)
* [Implementation - Simulation](/lintcode/problem-solving-summary/implementation-simulation.md)
* [Monotonic Stack & Queue](/lintcode/problem-solving-summary/monotonic-stack.md)
* [Top K Problems](/lintcode/problem-solving-summary/top-k-problems.md)
* [Java Interview Tips](/lintcode/problem-solving-summary/java-interview-tips.md)
* [OOP in Java](/lintcode/problem-solving-summary/java-interview-tips/oop-in-java.md)
* [Conversion in Java](/lintcode/problem-solving-summary/java-interview-tips/conversion-in-java.md)
* [Data Structures in Java](/lintcode/problem-solving-summary/java-interview-tips/data-structures-in-java.md)
* [Algorithm Optimization Tips](/lintcode/problem-solving-summary/algorithm-optimization-tips.md)
* [Reference](/lintcode/reference.md)
