algorithm-exercise
Preface
1.
FAQ
1.1.
Guidelines for Contributing
1.2.
Contributors
2.
Part I - Basics
3.
Basics Data Structure
3.1.
String
3.2.
Linked List
3.3.
Binary Tree
3.4.
Huffman Compression
3.5.
Queue
3.6.
Heap
3.7.
Stack
3.8.
Set
3.9.
Map
3.10.
Graph
4.
Basics Sorting
4.1.
Bubble Sort
4.2.
Selection Sort
4.3.
Insertion Sort
4.4.
Merge Sort
4.5.
Quick Sort
4.6.
Heap Sort
4.7.
Bucket Sort
4.8.
Counting Sort
4.9.
Radix Sort
5.
Basics Algorithm
5.1.
Divide and Conquer
5.2.
Binary Search
5.3.
Math
5.3.1.
Greatest Common Divisor
5.3.2.
Prime
5.4.
Knapsack
5.5.
Counting Problem
5.6.
Probability
5.6.1.
Shuffle
5.7.
Bitmap
6.
Basics Misc
6.1.
Bit Manipulation
7.
Part II - Coding
8.
String
8.1.
strStr
8.2.
Two Strings Are Anagrams
8.3.
Compare Strings
8.4.
Anagrams
8.5.
Longest Common Substring
8.6.
Rotate String
8.7.
Reverse Words in a String
8.8.
Valid Palindrome
8.9.
Longest Palindromic Substring
8.10.
Space Replacement
8.11.
Wildcard Matching
8.12.
Length of Last Word
8.13.
Count and Say
9.
Integer Array
9.1.
Remove Element
9.2.
Zero Sum Subarray
9.3.
Subarray Sum K
9.4.
Subarray Sum Closest
9.5.
Recover Rotated Sorted Array
9.6.
Product of Array Exclude Itself
9.7.
Partition Array
9.8.
First Missing Positive
9.9.
2 Sum
9.10.
3 Sum
9.11.
3 Sum Closest
9.12.
Remove Duplicates from Sorted Array
9.13.
Remove Duplicates from Sorted Array II
9.14.
Merge Sorted Array
9.15.
Merge Sorted Array II
9.16.
Median
9.17.
Partition Array by Odd and Even
9.18.
Kth Largest Element
10.
Binary Search
10.1.
Binary Search
10.2.
Search Insert Position
10.3.
Search for a Range
10.4.
First Bad Version
10.5.
Search a 2D Matrix
10.6.
Search a 2D Matrix II
10.7.
Find Peak Element
10.8.
Search in Rotated Sorted Array
10.9.
Search in Rotated Sorted Array II
10.10.
Find Minimum in Rotated Sorted Array
10.11.
Find Minimum in Rotated Sorted Array II
10.12.
Median of two Sorted Arrays
10.13.
Sqrt x
10.14.
Wood Cut
11.
Math and Bit Manipulation
11.1.
Single Number
11.2.
Single Number II
11.3.
Single Number III
11.4.
O1 Check Power of 2
11.5.
Convert Integer A to Integer B
11.6.
Factorial Trailing Zeroes
11.7.
Unique Binary Search Trees
11.8.
Update Bits
11.9.
Fast Power
11.10.
Hash Function
11.11.
Count 1 in Binary
11.12.
Fibonacci
11.13.
A plus B Problem
11.14.
Print Numbers by Recursion
11.15.
Majority Number
11.16.
Majority Number II
11.17.
Majority Number III
11.18.
Digit Counts
11.19.
Ugly Number
11.20.
Plus One
12.
Linked List
12.1.
Remove Duplicates from Sorted List
12.2.
Remove Duplicates from Sorted List II
12.3.
Remove Duplicates from Unsorted List
12.4.
Partition List
12.5.
Add Two Numbers
12.6.
Two Lists Sum Advanced
12.7.
Remove Nth Node From End of List
12.8.
Linked List Cycle
12.9.
Linked List Cycle II
12.10.
Reverse Linked List
12.11.
Reverse Linked List II
12.12.
Merge Two Sorted Lists
12.13.
Merge k Sorted Lists
12.14.
Reorder List
12.15.
Copy List with Random Pointer
12.16.
Sort List
12.17.
Insertion Sort List
12.18.
Palindrome Linked List
12.19.
Delete Node in the Middle of Singly Linked List
12.20.
LRU Cache
12.21.
Rotate List
12.22.
Swap Nodes in Pairs
12.23.
Remove Linked List Elements
13.
Binary Tree
13.1.
Binary Tree Preorder Traversal
13.2.
Binary Tree Inorder Traversal
13.3.
Binary Tree Postorder Traversal
13.4.
Binary Tree Level Order Traversal
13.5.
Binary Tree Level Order Traversal II
13.6.
Maximum Depth of Binary Tree
13.7.
Balanced Binary Tree
13.8.
Binary Tree Maximum Path Sum
13.9.
Lowest Common Ancestor
13.10.
Invert Binary Tree
13.11.
Diameter of a Binary Tree
13.12.
Construct Binary Tree from Preorder and Inorder Traversal
13.13.
Construct Binary Tree from Inorder and Postorder Traversal
13.14.
Subtree
13.15.
Binary Tree Zigzag Level Order Traversal
13.16.
Binary Tree Serialization
14.
Binary Search Tree
14.1.
Insert Node in a Binary Search Tree
14.2.
Validate Binary Search Tree
14.3.
Search Range in Binary Search Tree
14.4.
Convert Sorted Array to Binary Search Tree
14.5.
Convert Sorted List to Binary Search Tree
14.6.
Binary Search Tree Iterator
15.
Exhaustive Search
15.1.
Subsets
15.2.
Unique Subsets
15.3.
Permutations
15.4.
Unique Permutations
15.5.
Next Permutation
15.6.
Previous Permuation
15.7.
Permutation Index
15.8.
Permutation Index II
15.9.
Permutation Sequence
15.10.
Unique Binary Search Trees II
15.11.
Palindrome Partitioning
15.12.
Combinations
15.13.
Combination Sum
15.14.
Combination Sum II
15.15.
Minimum Depth of Binary Tree
15.16.
Word Search
16.
Dynamic Programming
16.1.
Triangle
16.2.
Backpack
16.3.
Backpack II
16.4.
Minimum Path Sum
16.5.
Unique Paths
16.6.
Unique Paths II
16.7.
Climbing Stairs
16.8.
Jump Game
16.9.
Word Break
16.10.
Longest Increasing Subsequence
16.11.
Palindrome Partitioning II
16.12.
Longest Common Subsequence
16.13.
Edit Distance
16.14.
Jump Game II
16.15.
Best Time to Buy and Sell Stock
16.16.
Best Time to Buy and Sell Stock II
16.17.
Best Time to Buy and Sell Stock III
16.18.
Best Time to Buy and Sell Stock IV
16.19.
Distinct Subsequences
16.20.
Interleaving String
16.21.
Maximum Subarray
16.22.
Maximum Subarray II
16.23.
Longest Increasing Continuous subsequence
16.24.
Longest Increasing Continuous subsequence II
16.25.
Egg Dropping Puzzle
16.26.
Maximal Square
17.
Graph
17.1.
Find the Connected Component in the Undirected Graph
17.2.
Route Between Two Nodes in Graph
17.3.
Topological Sorting
17.4.
Word Ladder
17.5.
Bipartial Graph Part I
18.
Data Structure
18.1.
Implement Queue by Two Stacks
18.2.
Min Stack
18.3.
Sliding Window Maximum
18.4.
Longest Words
18.5.
Heapify
18.6.
Kth Smallest Number in Sorted Matrix
19.
Problem Misc
19.1.
Nuts and Bolts Problem
19.2.
String to Integer
19.3.
Insert Interval
19.4.
Merge Intervals
19.5.
Minimum Subarray
19.6.
Matrix Zigzag Traversal
19.7.
Valid Sudoku
19.8.
Add Binary
19.9.
Reverse Integer
19.10.
Gray Code
19.11.
Find the Missing Number
19.12.
N Queens
19.13.
N Queens II
19.14.
Minimum Window Substring
19.15.
Continuous Subarray Sum
19.16.
Continuous Subarray Sum II
19.17.
Longest Consecutive Sequence
20.
Part III - Contest
21.
Google APAC
21.1.
APAC 2015 Round B
21.1.1.
Problem A. Password Attacker
21.2.
APAC 2016 Round D
21.2.1.
Problem A. Dynamic Grid
22.
Microsoft
22.1.
Microsoft 2015 April
22.1.1.
Problem A. Magic Box
22.1.2.
Problem B. Professor Q's Software
22.1.3.
Problem C. Islands Travel
22.1.4.
Problem D. Recruitment
22.2.
Microsoft 2015 April 2
22.2.1.
Problem A. Lucky Substrings
22.2.2.
Problem B. Numeric Keypad
22.2.3.
Problem C. Spring Outing
22.3.
Microsoft 2015 September 2
22.3.1.
Problem A. Farthest Point
23.
Appendix I Interview and Resume
23.1.
Interview
23.2.
Resume
24.
Appendix II System Design
24.1.
The System Design Process
24.2.
Statistics
24.3.
System Architecture
24.4.
Scalability
Powered by
GitBook
algorithm-exercise
Microsoft 2015 September 2
本小节总结 Microsoft 2015年九月第一次大规模校招的题,题目列表见
hihoCoder
. 这一场的题目感觉偏难。