Preface
FAQ
Guidelines for Contributing
Part I - Basics
Basics Data Structure
String
Linked List
Binary Tree
Huffman Compression
Queue
Heap
Stack
Set
Map
Graph
Basics Sorting
Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Quick Sort
Heap Sort
Bucket Sort
Counting Sort
Radix Sort
Basics Algorithm
Divide and Conquer
Binary Search
Math
Greatest Common Divisor
Prime
Knapsack
Probability
Shuffle
Bitmap
Basics Misc
Bit Manipulation
Part II - Coding
String
Implement strStr
Two Strings Are Anagrams
Compare Strings
Group Anagrams
Longest Common Substring
Rotate String
Reverse Words in a String
Valid Palindrome
Longest Palindromic Substring
Space Replacement
Wildcard Matching
Length of Last Word
Count and Say
Integer Array
Remove Element
Zero Sum Subarray
Subarray Sum K
Subarray Sum Closest
Recover Rotated Sorted Array
Product of Array Exclude Itself
Partition Array
First Missing Positive
2 Sum
3 Sum
3 Sum Closest
Remove Duplicates from Sorted Array
Remove Duplicates from Sorted Array II
Merge Sorted Array
Merge Sorted Array II
Median
Partition Array by Odd and Even
Kth Largest Element
Binary Search
First Position of Target
Search Insert Position
Search for a Range
First Bad Version
Search a 2D Matrix
Search a 2D Matrix II
Find Peak Element
Search in Rotated Sorted Array
Search in Rotated Sorted Array II
Find Minimum in Rotated Sorted Array
Find Minimum in Rotated Sorted Array II
Median of two Sorted Arrays
Sqrt x
Wood Cut
Math and Bit Manipulation
Single Number
Single Number II
Single Number III
O1 Check Power of 2
Convert Integer A to Integer B
Factorial Trailing Zeroes
Unique Binary Search Trees
Update Bits
Fast Power
Hash Function
Happy Number
Count 1 in Binary
Fibonacci
A plus B Problem
Print Numbers by Recursion
Majority Number
Majority Number II
Majority Number III
Digit Counts
Ugly Number
Plus One
Palindrome Number
Task Scheduler
Linked List
Remove Duplicates from Sorted List
Remove Duplicates from Sorted List II
Remove Duplicates from Unsorted List
Partition List
Add Two Numbers
Two Lists Sum Advanced
Remove Nth Node From End of List
Linked List Cycle
Linked List Cycle II
Reverse Linked List
Reverse Linked List II
Merge Two Sorted Lists
Merge k Sorted Lists
Reorder List
Copy List with Random Pointer
Sort List
Insertion Sort List
Palindrome Linked List
LRU Cache
Rotate List
Swap Nodes in Pairs
Remove Linked List Elements
Binary Tree
Binary Tree Preorder Traversal
Binary Tree Inorder Traversal
Binary Tree Postorder Traversal
Binary Tree Level Order Traversal
Binary Tree Level Order Traversal II
Maximum Depth of Binary Tree
Balanced Binary Tree
Binary Tree Maximum Path Sum
Lowest Common Ancestor
Invert Binary Tree
Diameter of a Binary Tree
Construct Binary Tree from Preorder and Inorder Traversal
Construct Binary Tree from Inorder and Postorder Traversal
Subtree
Binary Tree Zigzag Level Order Traversal
Binary Tree Serialization
Binary Search Tree
Insert Node in a Binary Search Tree
Minimum Absolute Difference in BST
Validate Binary Search Tree
Search Range in Binary Search Tree
Convert Sorted Array to Binary Search Tree
Convert Sorted List to Binary Search Tree
Binary Search Tree Iterator
Exhaustive Search
Subsets
Unique Subsets
Permutations
Unique Permutations
Next Permutation
Previous Permuation
Permutation Index
Permutation Index II
Permutation Sequence
Unique Binary Search Trees II
Palindrome Partitioning
Combinations
Combination Sum
Combination Sum II
Minimum Depth of Binary Tree
Word Search
Dynamic Programming
Triangle
Backpack
Backpack II
Minimum Path Sum
Unique Paths
Unique Paths II
Climbing Stairs
Jump Game
Word Break
Longest Increasing Subsequence
Palindrome Partitioning II
Longest Common Subsequence
Edit Distance
Jump Game II
Best Time to Buy and Sell Stock
Best Time to Buy and Sell Stock II
Best Time to Buy and Sell Stock III
Best Time to Buy and Sell Stock IV
Distinct Subsequences
Interleaving String
Maximum Subarray
Maximum Subarray II
Longest Increasing Continuous subsequence
Longest Increasing Continuous subsequence II
Maximal Square
Graph
Find the Connected Component in the Undirected Graph
Route Between Two Nodes in Graph
Topological Sorting
Word Ladder
Bipartial Graph Part I
Data Structure
Implement Queue by Two Stacks
Min Stack
Sliding Window Maximum
Longest Words
Heapify
Big Data
Top K Frequent Words (Map Reduce)
Top K Frequent Words
Top K Frequent Words II
K Closest Points
Top k Largest Numbers
Top k Largest Numbers II
Problem Misc
Nuts and Bolts Problem
String to Integer
Insert Interval
Merge Intervals
Minimum Subarray
Matrix Zigzag Traversal
Valid Sudoku
Add Binary
Reverse Integer
Gray Code
Find the Missing Number
Minimum Window Substring
Continuous Subarray Sum
Continuous Subarray Sum II
Longest Consecutive Sequence
Part III - Contest
Google APAC
APAC 2015 Round B
Problem A. Password Attacker
APAC 2016 Round D
Problem A. Dynamic Grid
Microsoft
Microsoft 2015 April
Problem A. Magic Box
Problem B. Professor Q's Software
Problem C. Islands Travel
Problem D. Recruitment
Microsoft 2015 April 2
Problem A. Lucky Substrings
Problem B. Numeric Keypad
Problem C. Spring Outing
Microsoft 2015 September 2
Problem A. Farthest Point
Appendix I Interview and Resume
Interview
Resume
Tags
本书使用 GitBook 发布
Binary Search
Search - 搜索
本章主要总结二分搜索相关的题。
能使用二分搜索的前提是数组已排序。
二分查找的使用场景:(1)可转换为find the first/last position of...(2)时间复杂度至少为O(lgn)。
递归和迭代的使用场景:能用迭代就用迭代,特别复杂时采用递归。
results matching "
"
powered by
No results matching "
"