• Quant365.com
  • 1 Preface
  • 2 Deepdive
    • 2.1 Project: EMSX
    • 2.2 Project: Atlas
    • 2.3 Project: PVM
    • 2.4 Project: Google Ads Release Dashboard
    • 2.5 Challenges
    • 2.6 Amazon BQ
  • 3 Python
    • 3.1 Decorator
    • 3.2 Descriptor
  • 4 Introduction
    • 4.1 Create a 2-D empty square matrix:
    • 4.2 C++ string split
    • 4.3 C++ language tips
    • 4.4 Complexity
    • 4.5 C++ Deadloop Trap
    • 4.6 array boundary check
    • 4.7 nth_element in java
    • 4.8 Java Length and Size
    • 4.9 template used in online contest
    • 4.10 Python
    • 4.11 about this website
  • 5 Bit
    • 5.1 Gray Code
    • 5.2 Reverse Bits
    • 5.3 Number of 1 Bits
    • 5.4 Counting Bits
    • 5.5 Repeated DNA Sequences
    • 5.6 231. Power of Two
    • 5.7 Single Number I
    • 5.8 Single Number II
    • 5.9 Single Number III
    • 5.10 Power of Four
    • 5.11 Subsets/PowerSet (DAG DFS)
    • 5.12 Isolate the leftmost 1 bit
    • 5.13 405. Convert a Number to Hexadecimal
    • 5.14 Floating Point Number
    • 5.15 Floating Point Number
    • 5.16 BIT(Binary Index Tree)
    • 5.17 Bitmap/Bitarray
    • 5.18 N-Queens
    • 5.19 N-Queens II
    • 5.20 Bloomfilter
    • 5.21 Binary Trie
    • 5.22 Maximum XOR of Two Numbers in an Array
    • 5.23 Integer Compression
    • 5.24 Next or Previous Power of 2
    • 5.25 461. Hamming Distance
    • 5.26 477. Total Hamming Distance
    • 5.27 318. Maximum Product of Word Lengths
    • 5.28 201. Bitwise AND of Numbers Range
    • 5.29 389. Find the Difference
    • 5.30 401. Binary Watch
    • 5.31 476. Number Complement
    • 5.32 320. Generalized Abbreviation
    • 5.33 411. Minimum Unique Word Abbreviation
    • 5.34 779. K-th Symbol in Grammar
    • 5.35 Morse Code
    • 5.36 Bit Manipulation Practice
  • 6 Array
    • 6.1 75. Sort Colors
    • 6.2 Sort Colors II - Rainbow Sort
    • 6.3 442. Find All Duplicates in an Array
    • 6.4 280. Wiggle Sort
    • 6.5 324. Wiggle Sort II
    • 6.6 283. Move Zeroes
    • 6.7 Reverse Words in a String
    • 6.8 Reverse Words in a String II
    • 6.9 345. Reverse Vowels of a String
    • 6.10 189. Rotate Array
    • 6.11 798. Smallest Rotation with Highest Score
    • 6.12 Remove Duplicates from Sorted Array
    • 6.13 80. Remove Duplicates from Sorted Array II
    • 6.14 Disjoint Set and Union Find
    • 6.15 The Suspects
    • 6.16 Longest Consecutive Sequence
    • 6.17 Number of Islands
    • 6.18 Prefix Tree(Trie)
    • 6.19 Interval Series
    • 6.20 56. Merge Intervals
    • 6.21 57. Insert Interval
    • 6.22 277. Find the Celebrity
    • 6.23 238. Product of Array Except Self
    • 6.24 36. Valid Sudoku
    • 6.25 37. Sudoku Solver
    • 6.26 414. Third Maximum Number
    • 6.27 532. K-diff Pairs in an Array
    • 6.28 451. Sort Characters By Frequency
    • 6.29 88. Merge Sorted Array
    • 6.30 643. Maximum Average Subarray I
    • 6.31 644. Maximum Average Subarray II
    • 6.32 633. Sum of Square Numbers
    • 6.33 628. Maximum Product of Three Numbers
    • 6.34 325. Maximum Size Subarray Sum Equals k
    • 6.35 525. Contiguous Array
    • 6.36 523. Continuous Subarray Sum
    • 6.37 410. Split Array Largest Sum
    • 6.38 27. Remove Element
    • 6.39 219. Contains Duplicate II
    • 6.40 41. First Missing Positive
    • 6.41 370. Range Addition
    • 6.42 598. Range Addition II
    • 6.43 493. Reverse Pairs
    • 6.44 665. Non-decreasing Array
    • 6.45 526. Beautiful Arrangement
    • 6.46 667. Beautiful Arrangement II
    • 6.47 448. Find All Numbers Disappeared in an Array
    • 6.48 565. Array Nesting
    • 6.49 775. Global and Local Inversions
    • 6.50 53. Maximum Subarray
    • 6.51 Subarray Sum Closest
    • 6.52 152. Maximum Product Subarray
    • 6.53 325. Maximum Size Subarray Sum Equals k
    • 6.54 209. Minimum Size Subarray Sum
    • 6.55 228. Summary Ranges
  • 7 String
    • 7.1 C++ string functions
    • 7.2 394. Decode String
    • 7.3 KMP (Knuth Morris Pratt)
    • 7.4 28. Implement strStr()
    • 7.5 459. Repeated Substring Pattern
    • 7.6 205. Isomorphic Strings
    • 7.7 290. Word Pattern
    • 7.8 291. Word Pattern II
    • 7.9 65. Valid Number
    • 7.10 68. Text Justification
    • 7.11 635. Design Log Storage System
    • 7.12 67. Add Binary
    • 7.13 161. One Edit Distance
    • 7.14 71. Simplify Path
    • 7.15 388. Longest Absolute File Path
    • 7.16 482. License Key Formatting
    • 7.17 616. Add Bold Tag in String
    • 7.18 670. Maximum Swap
    • 7.19 165. Compare Version Numbers
    • 7.20 6. ZigZag Conversion
    • 7.21 777. Swap Adjacent in LR String
    • 7.22 415. Add Strings
    • 7.23 43. Multiply Strings
    • 7.24 690. Factorial
    • 7.25 271. Encode and Decode Strings
    • 7.26 293. Flip Game
    • 7.27 294. Flip Game II
    • 7.28 93. Restore IP Addresses
    • 7.29 246. Strobogrammatic Number
    • 7.30 247. Strobogrammatic Number II
    • 7.31 791. Custom Sort String
  • 8 Matrix
    • 8.1 Basics
    • 8.2 562. Longest Line of Consecutive One in Matrix
    • 8.3 498. Diagonal Traverse
    • 8.4 Spiral Matrix
    • 8.5 59. Spiral Matrix II
    • 8.6 Young Tableau
    • 8.7 Matrix traversal and CPU Cache
    • 8.8 Rotate Image/Matrix
    • 8.9 Pascal Triangle
    • 8.10 120. Minimum Path Sum of Triangle
    • 8.11 64. Minimum Path Sum
    • 8.12 Sparse Matrix
    • 8.13 Sparse Matrix Multiplication
    • 8.14 CCS (Compressed Column Storage)
    • 8.15 Search a 2D Matrix I
    • 8.16 Search a 2D Matrix II
    • 8.17 378. Kth Smallest Element in a Sorted Matrix
    • 8.18 668. Kth Smallest Number in Multiplication Table
    • 8.19 79. Word Search
    • 8.20 Word Search II
    • 8.21 Extension topics
    • 8.22 73. Set Matrix Zeroes
    • 8.23 Union-Find(Number of Islands)
    • 8.24 305. Number of Islands II
    • 8.25 422. Valid Word Square
    • 8.26 425. Word Squares
    • 8.27 361. Bomb Enemy
    • 8.28 419. Battleships in a Board
    • 8.29 531. Lonely Pixel I
    • 8.30 533. Lonely Pixel II
    • 8.31 624. Maximum Distance in Arrays
    • 8.32 661. Image Smoother
    • 8.33 542. 01 Matrix
    • 8.34 Longest Increasing Path in a Matrix
    • 8.35 675. Cut Off Trees for Golf Event
    • 8.36 547. Friend Circles
    • 8.37 773. Sliding Puzzle
    • 8.38 778. Swim in Rising Water
    • 8.39 723. Candy Crush
    • 8.40 130. Surrounded Regions
    • 8.41 909. Snakes and Ladders
  • 9 Linked List
    • 9.1 Reverse Linked List
    • 9.2 Partition List
    • 9.3 Palindrome Linked List
    • 9.4 143. Reorder List
    • 9.5 328. Odd Even Linked List
    • 9.6 237. Delete Node in a Linked List
    • 9.7 203. Remove Linked List Elements
    • 9.8 138. Copy List with Random Pointer
    • 9.9 Merge Two Sorted Lists
    • 9.10 Merge K Sorted Lists
    • 9.11 141. Linked List Cycle
    • 9.12 142. Linked List Cycle II
    • 9.13 457. Circular Array Loop
    • 9.14 2. Add Two Numbers
    • 9.15 445. Add Two Numbers II
    • 9.16 306. Additive Number
    • 9.17 Intersection of 2 Linked Lists
    • 9.18 19. Remove Nth Node From End of List
    • 9.19 83. Remove Duplicates from Sorted List
    • 9.20 82. Remove Duplicates from Sorted List II
    • 9.21 147. Insertion Sort List
    • 9.22 92. Reverse Linked List II
    • 9.23 382. Linked List Random Node
    • 9.24 61. Rotate List
    • 9.25 82. Remove Duplicates from Sorted List II
  • 10 Set and Map
    • 10.1 220. Contains Duplicate III
    • 10.2 315. Count of Smaller Numbers After Self
    • 10.3 166. Fraction to Recurring Decimal
    • 10.4 781. Rabbits in Forest
    • 10.5 249. Group Shifted Strings
  • 11 Skip List
  • 12 Stack and Queue
    • 12.1 Remove duplicates from string and keep lexicographical order
    • 12.2 636. Exclusive Time of Functions
    • 12.3 640. Solve the Equation
    • 12.4 638. Shopping Offers
    • 12.5 84. Largest Rectangle in Histogram
    • 12.6 218. The Skyline Problem
    • 12.7 224. Basic Calculator
    • 12.8 227. Basic Calculator II
    • 12.9 32. Longest Valid Parentheses
  • 13 Heap
    • 13.1 Basics
    • 13.2 difference between segment-tree
    • 13.3 Index Heap
    • 13.4 D-ary Heap
    • 13.5 Binomial Heap
    • 13.6 Leftish Tree
    • 13.7 Young Tableau
    • 13.8 Applications
    • 13.9 347. Top K Frequent Elements
    • 13.10 499. Word Count (Map Reduce)
    • 13.11 Lossy Counting
    • 13.12 xxx_heap in STL
    • 13.13 630. Course Schedule III
    • 13.14 K-Way Merging
    • 13.15 774. Minimize Max Distance to Gas Station
    • 13.16 169. Majority Element
    • 13.17 229. Majority Element II
    • 13.18 295. Find Median from Data Stream
  • 14 Binary Tree
    • 14.1 Basics of Tree Depth, Height and Level
    • 14.2 222. Count Complete Tree Nodes
    • 14.3 606. Construct String from Binary Tree
    • 14.4 22. Generate Parentheses
    • 14.5 Graph Valid Tree
    • 14.6 Number Tree - LeetCode 386. Lexicographical Numbers
    • 14.7 440. K-th Smallest in Lexicographical Order
    • 14.8 111. Minimum Depth of Binary Tree
    • 14.9 104. Maximum Depth of Binary Tree
    • 14.10 366. Find Leaves of Binary Tree
    • 14.11 364. Nested List Weight Sum II
    • 14.12 Binary Tree Upside Down
    • 14.13 Flatten Binary Tree to Linked List
    • 14.14 Symmetric Tree
    • 14.15 Binary Tree Zigzag Level Order Traversal(BFS)
    • 14.16 Balanced Binary Tree (Recursion)
    • 14.17 297. Serialize and Deserialize Binary Tree
  • 15 Binary Tree (Continued)
    • 15.1 96. Unique Binary Search Trees
    • 15.2 95. Unique Binary Search Trees II
    • 15.3 241. Different Ways to Add Parentheses
    • 15.4 449. Serialize and Deserialize BST
    • 15.5 129. Sum Root to Leaf Numbers
    • 15.6 199. Binary Tree Right Side View
    • 15.7 623. Add One Row to Tree
    • 15.8 572. Subtree of Another Tree
    • 15.9 404. Sum of Left Leaves
    • 15.10 298. Binary Tree Longest Consecutive Sequence
    • 15.11 655. Print Binary Tree
    • 15.12 662. Maximum Width of Binary Tree
    • 15.13 663. Equal Tree Partition
    • 15.14 invertTree(Relation between DFS and Recursion)
    • 15.15 100. Same Tree
    • 15.16 112. Path Sum
    • 15.17 Path Sum II(Traverse One Binary Tree)
    • 15.18 Path Sum III
    • 15.19 666. Path Sum IV
    • 15.20 124. Binary Tree Maximum Path Sum
    • 15.21 543. Diameter of Binary Tree
    • 15.22 687. Longest Univalue Path
  • 16 Tree Traversal
    • 16.1 Morris Traversal
    • 16.2 94. Binary Tree Inorder Traversal
    • 16.3 783. Minimum Distance Between BST Nodes
    • 16.4 98. Validate Binary Search Tree
    • 16.5 230. Kth Smallest Element in a BST
    • 16.6 285. Inorder Successor in BST
    • 16.7 270. Closest Binary Search Tree Value
    • 16.8 272. Closest Binary Search Tree Value II
    • 16.9 144. Binary Tree Preorder Traversal
    • 16.10 255. Verify Preorder Sequence in Binary Search Tree
    • 16.11 145. Binary Tree Postorder Traversal
    • 16.12 99. Recover Binary Search Tree
    • 16.13 113. Path Sum II
    • 16.14 173. Binary Search Tree Iterator
    • 16.15 Tree Search
    • 16.16 545. Boundary of Binary Tree
    • 16.17 538. Convert BST to Greater Tree
    • 16.18 536. Construct Binary Tree from String
    • 16.19 508. Most Frequent Subtree Sum
    • 16.20 Convert a Binary Tree to Threaded binary tree
    • 16.21 257. Binary Tree Paths
    • 16.22 314. Binary Tree Vertical Order Traversal
    • 16.23 652. Find Duplicate Subtrees
  • 17 Trie and Suffix Tree
    • 17.1 Trie (Prefix Tree)
    • 17.2 208. Implement Trie (Prefix Tree)
    • 17.3 211. Add and Search Word - Data structure design
    • 17.4 642. Design Search Autocomplete System
    • 17.5 648. Replace Words
    • 17.6 Suffix Tree
  • 18 Other Trees
    • 18.1 AVL Tree
    • 18.2 Interval Tree
    • 18.3 Segement Tree
    • 18.4 Interval Sum
    • 18.5 Interval Sum II
    • 18.6 Interval Minimum Number
    • 18.7 Count of Smaller Number
    • 18.8 Count of Smaller Number before itself
    • 18.9 315. Count of Smaller Numbers After Self
    • 18.10 Binary Index Tree
    • 18.11 307. Range Sum Query - Mutable
    • 18.12 308. Range Sum Query 2D - Mutable
    • 18.13 303. Range Sum Query - Immutable
    • 18.14 Quad-Tree
    • 18.15 R-Tree
    • 18.16 K-d Tree
    • 18.17 Spanning Tree
    • 18.18 671. Second Minimum Node In a Binary Tree
  • 19 Binary Search Tree
    • 19.1 108. Convert Sorted Array to Binary Search Tree
    • 19.2 109. Convert Sorted List to Binary Search Tree
    • 19.3 AVL tree
    • 19.4 Order Statistic Tree and Stream Median Tree
    • 19.5 Find Median from Data Stream
    • 19.6 Identical BST
    • 19.7 98. Validate Binary Search Tree
    • 19.8 333. Largest BST Subtree
    • 19.9 250. Count Univalue Subtrees
    • 19.10 99. Recover Binary Search Tree
    • 19.11 669. Trim a Binary Search Tree
    • 19.12 776. Split BST
  • 20 Graph
    • 20.1 Representation of Graph
    • 20.2 Graph Valid Tree
    • 20.3 BFS (Single/Double/Multiple Sources)
    • 20.4 Walls and Gates (MS-BFS)
    • 20.5 127. Word Ladder
    • 20.6 433. Minimum Genetic Mutation
    • 20.7 126. Word Ladder II
    • 20.8 Number of Connected Components in an Undirected Graph
    • 20.9 684. Redundant Connection
    • 20.10 Shortest Path
    • 20.11 Longest Path
    • 20.12 Expression Add Operators (DFS + Pruning)
    • 20.13 Route Tracking
    • 20.14 Kangroo Jump
    • 20.15 Topological Sort
    • 20.16 Course Schedule - Khan BFS(1 set+2 maps)
    • 20.17 Course Schedule II
    • 20.18 332. Reconstruct Itinerary
    • 20.19 Alien Dictionary
    • 20.20 310. Minimum Height Trees
    • 20.21 Conclusion
    • 20.22 399. Evaluate Division
    • 20.23 529. Minesweeper
    • 20.24 317. Shortest Distance from All Buildings
    • 20.25 133. Clone Graph
    • 20.26 785. Is Graph Bipartite?
    • 20.27 Dijkstra Algorithm
    • 20.28 787. Cheapest Flights Within K Stops
    • 20.29 Kruskal (MST): Really Special Subtree
    • 20.30 Prim’s (MST) : Special Subtree
    • 20.31 Reference Book
  • 21 Computational Geometry
    • 21.1 Rectangles Intersection
    • 21.2 223. Rectangle Area
    • 21.3 391. Perfect Rectangle
    • 21.4 356. Line Reflection
    • 21.5 469. Convex Polygon
    • 21.6 Convex Hull with Graham’s Scan
    • 21.7 587. Erect the Fence
    • 21.8 Closest Pair of Points
  • 22 Approximation Algorithm
  • 23 Math & Probability
    • 23.1 Reverse Integer
    • 23.2 313. Super Ugly Number
    • 23.3 326. Power of Three
    • 23.4 Biased Random Generator
    • 23.5 Weighted Random Number Generator
    • 23.6 Probability key from a given map
    • 23.7 Two Sigma - Random weighted string
    • 23.8 537. Complex Number Multiplication
    • 23.9 Coupon collector’s problem
    • 23.10 625. Minimum Factorization
    • 23.11 398. Random Pick Index
    • 23.12 483. Smallest Good Base
    • 23.13 357. Count Numbers with Unique Digits
    • 23.14 172. Factorial Trailing Zeroes
    • 23.15 319. Bulb Switcher
    • 23.16 672. Bulb Switcher II
    • 23.17 LN 48. Majority Number III
    • 23.18 29. Divide Two Integers
    • 23.19 204. Count Primes
    • 23.20 504. Base 7
    • 23.21 660. Remove 9
    • 23.22 780. Reaching Points
    • 23.23 878. Nth Magical Number
  • 24 Augmented Data Structure
    • 24.1 146. LRU Cache
    • 24.2 460. LFU Cache
    • 24.3 432. All O(1) Data Structure
    • 24.4 362. Design Hit Counter
    • 24.5 359. Logger Rate Limiter
    • 24.6 555. Counting Bloom Filter
    • 24.7 556. Standard Bloom Filter
    • 24.8 635. Design Log Storage System
    • 24.9 588. Design In-Memory File System
    • 24.10 Unrolled Linked List
  • 25 Dynamic Programming
    • 25.1 91. Decode Ways
    • 25.2 639. Decode Ways II
    • 25.3 10. Regular Expression Matching
    • 25.4 Unique Binary Search Trees
    • 25.5 139. Word Break I
    • 25.6 140. Word Break II
    • 25.7 Edit Distance (Levenshtein distance)
    • 25.8 97. Interleaving String
    • 25.9 Distinct Subsequences
    • 25.10 Longest Increasing Subsequence(LIS)
    • 25.11 673. Number of Longest Increasing Subsequence
    • 25.12 646. Maximum Length of Pair Chain
    • 25.13 334. Increasing Triplet Subsequence
    • 25.14 312. Burst Balloons
    • 25.15 256. Paint House
    • 25.16 265. Paint House II
    • 25.17 198. House Robber
    • 25.18 213. House Robber II
    • 25.19 337. House Robber III
    • 25.20 Delete and Earn
    • 25.21 Longest Common Subsequence
    • 25.22 174. Dungeon Game
    • 25.23 494. Target Sum
    • 25.24 85. Maximal Rectangle
    • 25.25 221. Maximal Square
    • 25.26 650. 2 Keys Keyboard
    • 25.27 656. Coin Path
    • 25.28 279. Perfect Squares
    • 25.29 664. Strange Printer
    • 25.30 418. Sentence Screen Fitting
    • 25.31 70. Climbing Stairs
  • 26 Greedy
    • 26.1 649. Dota2 Senate
    • 26.2 55. Jump Game
    • 26.3 45. Jump Game II
  • 27 Select Topics
    • 27.1 Subsequence
    • 27.2 200. Number of Islands
    • 27.3 305. Number of Islands II
    • 27.4 The Suspects
    • 27.5 406. Queue Reconstruction by Height
  • 28 Binary Search
    • 28.1 278. First Bad Version
    • 28.2 Basic - Search in Sorted Array
    • 28.3 367. Valid Perfect Square
    • 28.4 33. Search in Rotated Sorted Array
    • 28.5 81. Search in Rotated Sorted Array II
    • 28.6 34. Search for a Range
    • 28.7 35. Search Insert Position
    • 28.8 287. Find the Duplicate Number(hard)
    • 28.9 153. Find Minimum in Rotated Sorted Array
    • 28.10 154. Find Minimum in Rotated Sorted Array II
    • 28.11 162. Find Peak Element
    • 28.12 852. Peak Index in a Mountain Array
    • 28.13 275. H-Index II
    • 28.14 540. Single Element in a Sorted Array
  • 29 Palindrome
    • 29.1 isPalindrome(ispal)
    • 29.2 Valid Palindrome with Space
    • 29.3 680. Valid Palindrome II
    • 29.4 Number of All Palindrome Substrings
    • 29.5 All Palindrome Substrings
    • 29.6 Longest Palindrome Substring (2D DP, Expansion, Manacher)
    • 29.7 730. Count Different Palindromic Subsequences
    • 29.8 Number of All Palindromic subsequence
    • 29.9 All Palindrome Subsequences
    • 29.10 516. Longest Palindromic Subsequence
    • 29.11 Longest Common Subsequence 2
    • 29.12 Longest Increasing Subsequence(LIS) 2
    • 29.13 Palindrome Partitioning (2d DP + subsets DFS)
    • 29.14 132. Palindrome Partitioning II(2d DP+ 1d DP)
    • 29.15 Palindrome Pairs
    • 29.16 266. Palindrome Permutation
    • 29.17 Palindrome Permutation II
    • 29.18 Get Palindrome of a String with replacement
    • 29.19 9. Palindrome Number
    • 29.20 214. Shortest Palindrome
    • 29.21 Minimum insertions to form a palindrome
    • 29.22 409. Longest Palindrome
  • 30 Combinatorics
    • 30.1 447. Number of Boomerangs
    • 30.2 77. Combination (DFS)
    • 30.3 17. Letter Combinations of a Phone Number
    • 30.4 Combination Sum I, II, III, IV
    • 30.5 39. Combination Sum I
    • 30.6 40. Combination Sum II
    • 30.7 216. Combination Sum III
    • 30.8 377. Permutation Sum
    • 30.9 Combination Sum IV (Dup-Removing)
    • 30.10 518. Coin Change 2 (combination sum IV)
    • 30.11 322. Coin Change
    • 30.12 Permutation I. II
    • 30.13 Permutation I
    • 30.14 Permutation II
    • 30.15 60. Permutation Sequence
    • 30.16 Subsets/PowerSet (DAG DFS) I
    • 30.17 Subsets/PowerSet (DAG DFS) II
    • 30.18 Subset Sum
    • 30.19 634. Find the Derangement of An Array
    • 30.20 629. K Inverse Pairs Array
    • 30.21 790. Domino and Tromino Tiling
  • 31 Sliding Window
    • 31.1 76. Minimum Window Substring
    • 31.2 159. Longest Substring with At Most Two Distinct Characters
    • 31.3 3. Longest Substring Without Repeating Characters
    • 31.4 438. Find All Anagrams in a String
    • 31.5 239. Sliding Window Maximum
    • 31.6 480. Sliding Window Median
    • 31.7 632. Smallest Range
  • 32 Concurrency
    • 32.1 Concurrent Hashmap
    • 32.2 Sinlge Blocking Queue
    • 32.3 Bounded Blocking Queue
    • 32.4 Design a DelayQueue
    • 32.5 Inplement A Deadlock
    • 32.6 Ticket Algorithm
    • 32.7 Making Water
    • 32.8 When should one use a spinlock instead of mutex?
  • 33 Iterator
    • 33.1 173. Binary Search Tree Iterator
    • 33.2 284. Peeking Iterator
    • 33.3 341. Flatten Nested List Iterator
    • 33.4 281. Zigzag Iterator
    • 33.5 251. Flatten 2D Vector
    • 33.6 604. Design Compressed String Iterator
  • 34 Google 2015
    • 34.1 Binary Search Tree
    • 34.2 Design Garbage Collector in C++
    • 34.3 149. Max Points on a Line
    • 34.4 568. Maximum Vacation Days
  • 35 Google 2016 07
  • 36 Google 2016 09
  • 37 Google 2016 10
    • 37.1 previous permutation
    • 37.2 next permutation
    • 37.3 Trapping Rain Water I/II
    • 37.4 407. Trapping Rain Water II
    • 37.5 KSum
    • 37.6 2sum
    • 37.7 3sum
    • 37.8 3Sum Closest
    • 37.9 259. 3Sum Smaller
    • 37.10 18. 4Sum
    • 37.11 454. 4Sum II
    • 37.12 ksum I
    • 37.13 ksum II
  • 38 Google 2016 11
    • 38.1 Design Candy Crush
    • 38.2 Gas Station II
    • 38.3 Light Strength (Bomb Enemy Extended)
    • 38.4 68. Text Justification
  • 39 Google 2016 12
    • 39.1 Range Overlap
    • 39.2 Delete Tree
    • 39.3 Lonely Pixel
    • 39.4 163. Missing Ranges
    • 39.5 373. Find K Pairs with Smallest Sums
    • 39.6 Ugly Number I/II, Super Ugly Number
  • 40 Google 2017 01
    • 40.1 394. Decode String
    • 40.2 166. Fraction to Recurring Decimal
    • 40.3 345. Reverse Vowels of a String
    • 40.4 411. Minimum Unique Word Abbreviation
  • 41 Google 2017 03
    • 41.1 587. Erect the Fence
    • 41.2 Othello Game
    • 41.3 RLEIterator - run-length encoding
    • 41.4 393. UTF-8 Validation
    • 41.5 Hashmap with TTL
    • 41.6 Max submatrix with four vertices equal to 1
    • 41.7 Find Shortest Non-substring With Give Alphabet
  • 42 Google 2017 05
    • 42.1 Binary Search _last_equal_or_less
    • 42.2 Longest Ridge
    • 42.3 Sort better than nlogn
  • 43 Google 2017 12
  • 44 Facebook 2016 Interview Questions Part 1
    • 44.1 157. Read N Characters Given Read4
    • 44.2 158. Read N Characters Given Read4 II - Call multiple times
    • 44.3 168. Excel Sheet Column Title
    • 44.4 301. Remove Invalid Parentheses
    • 44.5 20. Valid Parentheses
    • 44.6 Longest Path in N-ary Tree
    • 44.7 Longest Path in DAG
    • 44.8 298. Binary Tree Longest Consecutive Sequence
    • 44.9 549. Binary Tree Longest Consecutive Sequence II
    • 44.10 554. Brick Wall
  • 45 Facebook 2017 Interview Questions Part 1
    • 45.1 273. Integer to English Words
    • 45.2 283. Move Zeroes
    • 45.3 Amazing Numbers
    • 45.4 252. Meeting Rooms
    • 45.5 253. Meeting Rooms II
    • 45.6 Gas Station
    • 45.7 Largest Subarray
    • 45.8 621. Task Scheduler
    • 45.9 468. Validate IP Address
  • 46 Facebook 2017 Interview Questions Part 2
    • 46.1 facebok design questions
    • 46.2 Design Memcached
    • 46.3 Design POI
    • 46.4 Length of Longest Arithmetic Progression (LLAP)
    • 46.5 Interview URLs
    • 46.6 383. Ransom Note
    • 46.7 304. Range Sum Query 2D - Immutable
    • 46.8 350. Intersection of Two Arrays II
  • 47 Uber 2016 11
  • 48 Linkedin before 2015
    • 48.1 Sudoku - Add Two Numbers - Maximum product of a triplet
    • 48.2 Bipartite - Product of Array Except Self - Intersection of Two Arrays
    • 48.3 415. Add Strings
    • 48.4 34. Search for a Range
    • 48.5 Design RESTFUL Server
    • 48.6 Deadlock + Constant Time Add-Remove Data Structure
    • 48.7 Line Iterator of Text File
    • 48.8 Bidirection BFS + Design Hashtable
    • 48.9 Convert a Binary Tree into its Mirror Tree
    • 48.10 getTotalCoveredLength
    • 48.11 Count possible triangles + Implement Linked List
    • 48.12 Text Justification
    • 48.13 LCA with parent pointer
    • 48.14 Implement a blocking bounded queue
    • 48.15 Sqrt
    • 48.16 Flatten a multilevel linked list
    • 48.17 Design Thread-Safe Hashmap + Celebrity
    • 48.18 149. Max Points on a Line
    • 48.19 Distributed Inverted Index Design
    • 48.20 isThirdDegree
    • 48.21 13. Roman to Integer
    • 48.22 12. Integer to Roman
    • 48.23 Edit Distance (Levenshtein distance)
    • 48.24 Write-through and Write-back Cache + MM File
    • 48.25 Memory Copy + BST Insert and Delete + Making Water
    • 48.26 Making Water
    • 48.27 Word Ladder 1.5
    • 48.28 3rd Degree Friends and Distributed Graph
    • 48.29 Place Flowers
  • 49 Linkedin 2015
    • 49.1 Longest Palindromic Subsequence
    • 49.2 39. Combination Sum I, II, III, IV
    • 49.3 Identical BST
    • 49.4 All Palindromic subsequence
    • 49.5 Multilevel linked list + Design Filesystem
  • 50 Linkedin 2016 01-06
    • 50.1 Reservoir sampling
    • 50.2 Loop mutlidimentional arrays
  • 51 Linkedin 2016 10
    • 51.1 Design Key Value Store
    • 51.2 Design Monitoring System
    • 51.3 3 Degree Friends
  • 52 Linkedin 2016 11
    • 52.1 384. Shuffle an Array
    • 52.2 235. Lowest Common Ancestor of a Binary Search Tree
    • 52.3 236. Lowest Common Ancestor of a Binary Tree
    • 52.4 254. Factor Combinations
    • 52.5 170. Two Sum III - Data structure design
    • 52.6 187. Repeated DNA Sequences
    • 52.7 339. Nested List Weight Sum
    • 52.8 Shortest Word Distance Series
    • 52.9 Maximum product of a triplet
    • 52.10 Median/Max/Min Stack
    • 52.11 366. Find Leaves of Binary Tree
    • 52.12 Design Google Calendar
    • 52.13 160. Intersection of Two Linked Lists
    • 52.14 50. Pow(x, n)
    • 52.15 Hangman Game
    • 52.16 K Closest Points(KNN)
    • 52.17 450. Delete Node in a BST
    • 52.18 Lazy caterer’s sequence and Cake number
    • 52.19 78. Subsets I II
    • 52.20 464. Can I Win (if I go first)
    • 52.21 297. Serialize and Deserialize Binary Tree
    • 52.22 449. Serialize and Deserialize BST
    • 52.23 341. Flatten Nested List Iterator
    • 52.24 Isomorphic String
    • 52.25 Paint House + Biased Random Generator + KMeans
    • 52.26 Map Reduce
    • 52.27 Union and Intersection of two Linked Lists
    • 52.28 149. Max Points on a Line
  • 53 Linkedin 2016 12
    • 53.1 149. Max Points on a Line
    • 53.2 number of possible triangles
    • 53.3 282. Expression Add Operators(H)
    • 53.4 Union and Intersection of two Linked Lists
  • 54 Linkedin 2017 Interview Questions Part 1
    • 54.1 39. Combination Sum
    • 54.2 40. Combination Sum II
    • 54.3 Top K URLs in last 24hr/1hr/5min
    • 54.4 Flatten a multilevel linked list 2
    • 54.5 380. Insert Delete GetRandom O(1)
    • 54.6 Tournament Tree
    • 54.7 Float to English Words
    • 54.8 Print Matrix
    • 54.9 Evely Split N numbers into K buckets + Desgin Youtube + Zappos
    • 54.10 Tiny URL
    • 54.11 Hangman
  • 55 Linkedin 2017 Interview Questions Part 2
    • 55.1 151. Reverse Words in a String
    • 55.2 Top 500 exceptions in 1 hour
    • 55.3 MaxStack
    • 55.4 270. Closest Binary Search Tree Value
    • 55.5 Weighted Random
    • 55.6 Coin Change
    • 55.7 RTree/Quad Tree/Kd Tree
    • 55.8 design侦测恶意的封包
  • 56 Linkedin 2017 Interview Questions Part 3
    • 56.1 a==b but ++a != ++b
    • 56.2 Sparse Matrix Storage
  • 57 Airbnb 2016 11
  • 58 Snapchat 2016 11
  • 59 Bloomberg 2015
    • 59.1 TryingAndTrying 发表于 2015-7-28 03:06:00
    • 59.2 anonym 发表于 2015-7-25 09:45:37
    • 59.3 JoeQi 发表于 2015-4-2 08:51:55
    • 59.4 notturno 发表于 2015-7-25 00:08:17
    • 59.5 smith 发表于 2015-1-23 12:31:16
    • 59.6 ethan11015 发表于 2015-7-20 02:27:42
    • 59.7 zijianz 发表于 2015-4-9 11:54:38
    • 59.8 royalheart 发表于 2015-2-28 08:04:57
    • 59.9 catinclay 发表于 2015-3-18 08:08:22
    • 59.10 Xin_walker 发表于 2015-6-11 14:46:45
    • 59.11 121. Best Time to Buy and Sell Stock
    • 59.12 122. Best Time to Buy and Sell Stock II
    • 59.13 445. Add Two Numbers II
  • 60 Bloomberg 2016
    • 60.1 Pow(x, y)
    • 60.2 Reverse Integer
    • 60.3 645. Set Mismatch
    • 60.4 Missing Number in Unsorted Arithmetic Series
    • 60.5 max sum subarray
    • 60.6 histogram query
    • 60.7 print matrix diagnally from southwest to eastnorth
    • 60.8 deadlock
    • 60.9 Histogram Iterator
    • 60.10 Best Time to Buy and Sell Stock (Once)
    • 60.11 Best Time to Buy and Sell Stock (Unlimited Times)
    • 60.12 Best Time to Buy and Sell Stock (At Most Two Transactions)
    • 60.13 Best Time to Buy and Sell Stock (At Most K Transactions)
    • 60.14 Best Time to Buy and Sell Stock with Cooldown
  • 61 Bloomberg 2017
    • 61.1 Blow off leaf nodes of binary tree
    • 61.2 Knight’s tour
    • 61.3 Design booking system
    • 61.4 Flood Fill a Matrix
    • 61.5 295. Find Median from Data Stream
    • 61.6 LFU Cache
    • 61.7 49. Group Anagrams
    • 61.8 Flip zeroes
    • 61.9 Rate Limiter
    • 61.10
    • 61.11 463. Island Perimeter
    • 61.12 Design room reservation system
    • 61.13 Intersection of Linked List
    • 61.14 Marathon Ranking TopK
    • 61.15 Segregate even and odd nodes in a Linked List
    • 61.16 Compress String
    • 61.17 Design Lift System
  • 62 HFT 2016 11
    • 62.1 Monty Hall Problem
    • 62.2 Trader @ Akuna
  • 63 MS Yahoo 2016 11
  • 64 Other Companies
    • 64.1 Count All Palindrome Substrings in a String
    • 64.2 Josephus problem
    • 64.3 390. Elimination Game
    • 64.4 116. Populating Next Right Pointers in Each Node
    • 64.5 117. Populating Next Right Pointers in Each Node II
    • 64.6 387. First Unique Character in a String
    • 64.7 64. Minimum Path Sum
    • 64.8 Drive.AI Merge Two Sorted Array
    • 64.9 Drive.AI Sort Build Dependency
    • 64.10 Multithread Token Bucket + Crawler
    • 64.11 517. Super Washing Machines
    • 64.12 Graph Valid N-ary Tree
    • 64.13 Maximize number of 0s by flipping a subarray
    • 64.14 134. Gas Station
    • 64.15 Design BlackJack
    • 64.16 Merge Sort
    • 64.17 Print Diamond
    • 64.18 N People Tournament
    • 64.19 Fibonacci Number
    • 64.20 QuickSelect
    • 64.21 Unrolled Linked List
    • 64.22 Two Sigma OA
  • 65 Amazon
    • 65.1 How to prepare Amazon Behavior Question?
  • 66 Pure Storage
    • 66.1 OA
    • 66.2 Image Smoother
    • 66.3 task dispatch system
    • 66.4 202. Happy Number
    • 66.5 buddy system bitmap
    • 66.6 Virtual Function and Table
    • 66.7 593. Valid Square
    • 66.8 Draw a Circle
  • 67 Apple
    • 67.1 Compound Iterator
    • 67.2 Implement Natural Numbers
    • 67.3 Implement Natural Numbers 2
    • 67.4 N-Way-List-Merge
    • 67.5 Optimal 2-way Split
    • 67.6 Palindrome Questions
    • 67.7 Primes Sieve
    • 67.8 Resource Pool
    • 67.9 Refactor Rock, Paper, Scissors
    • 67.10 Rolling Window
    • 67.11 Trending URLs
    • 67.12 URL Shortener
  • 68 Indeed
    • 68.1 Unrolled Linked List
    • 68.2 Roll Dice
    • 68.3 Git Commit
    • 68.4 Normalized Title
    • 68.5 Related Words Search
  • 69 Oscar Health
    • 69.1 Morse Codec
  • 70 Company Summary
    • 70.1 Linkedin
    • 70.2 Facebook
  • References
  • Quant365

Programming Notes for Software Engineer

Chapter 3 Python

3.1 Decorator

http://jfine-python-classes.readthedocs.io/en/latest/decorators.html

https://github.com/pallets/flask/blob/master/flask/helpers.py#L840

3.2 Descriptor

__get__