Work-In-Progress
1) standardize variable naming and coding style before migrating more code.
2) improve topic naming, question categorization, and question tags.
3) introduce more high-level topics (expand System Design).
Designed to facililate retrieval, review, and recall of algorithmic techniques.
C++ Standard Library ⓘ
                    Questions where the solution can be reduced to simply using C++ containers or functions to do the heavy-lifting.
                
Move Zeroes std::remove grind169 | leetcodetop152 | leetcode75 Remove Element std::remove leetcode150 Remove Duplicates from Sorted Array std::unique leetcodetop152 | leetcode150 Remove Duplicates from Sorted Array II std::unique leetcode150 Merge Sorted Array std::inplace_merge leetcodetop152 | leetcode150 Find Peak Element std::adjacent_find leetcodetop152 | leetcode75 | leetcode150 Kth Largest Element in an Array std::nth_element neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150 Rotate Array std::rotate grind169 | leetcodetop152 | leetcode150 Next Permutation std::next_permutation grind169 Greatest Common Divisor of Strings std::gcd leetcode75
Data Structures ⓘ
                    Non-trivial usage of data structures.
                
Longest Palindrome grind169 Contains Duplicate Arrays & Hashing neetcode150 | grind169 | leetcodetop152 Valid Anagram Arrays & Hashing neetcode150 | grind169 | leetcodetop152 | leetcode150 Two Sum Scan Hash neetcode150 | grind169 | leetcodetop152 | leetcode150 Ransom Note grind169 | leetcode150 Find the Difference of Two Arrays leetcode75 Unique Number of Occurrences leetcode75 Determine if Two Strings Are Close leetcode75 Equal Row and Column Pairs leetcode75 Max Number of K-Sum Pairs Scan Hash leetcode75 Smallest Number in Infinite Set leetcode75 Insert Delete GetRandom O(1) %Random grind169 | leetcodetop152 | leetcode150 Valid Sudoku Bitset neetcode150 | grind169 | leetcodetop152 | leetcode150 Longest Consecutive Sequence Unordered Set neetcode150 | grind169 | leetcodetop152 | leetcode150 Copy List with Random Pointer %Linked List neetcode150 | leetcodetop152 | leetcode150 First Missing Positive grind169 | leetcodetop152 Number of Orders in the Backlog
Valid Parentheses neetcode150 | grind169 | leetcodetop152 | leetcode150 Minimum Remove to Make Valid Parentheses Longest Valid Parentheses grind169 Implement Queue using Stacks grind169 Removing Stars From a String leetcode75 Min Stack neetcode150 | grind169 | leetcodetop152 | leetcode150 Evaluate Reverse Polish Notation neetcode150 | grind169 | leetcodetop152 | leetcode150 Decode String grind169 | leetcode75 Asteroid Collision grind169 | leetcode75 Flatten Nested List Iterator FlatMap leetcodetop152 Basic Calculator II Iteration | Stack grind169 | leetcodetop152 Basic Calculator Iteration | Stack grind169 | leetcode150
Number of Recent Calls leetcode75 Dota2 Senate leetcode75
Maximum Subsequence Score leetcode75 Total Cost to Hire K Workers leetcode75 Last Stone Weight neetcode150 Task Scheduler neetcode150 | grind169 | leetcodetop152 Design Twitter neetcode150 Kth Largest Element in a Stream %Stream neetcode150 Find Median from Data Stream %Stream neetcode150 | grind169 | leetcodetop152 | leetcode150 Merge k Sorted Lists %Merge neetcode150 | grind169 | leetcodetop152 | leetcode150 IPO leetcode150 Smallest Range Covering Elements from K Lists %Merge | Sliding Window Variable Length grind169 The Skyline Problem leetcodetop152 Course Schedule III Trapping Rain Water II Minimum Number of Refueling Stops DP
Implement Trie (Prefix Tree) Trie neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150 Design Add and Search Words Data Structure Trie | N-ary Tree Backtracking | DFS neetcode150 | grind169 | leetcode150 Palindrome Pairs Trie | Prefix | Suffix grind169 Prefix and Suffix Search Trie | Prefix | Suffix
LRU Cache neetcode150 | grind169 | leetcodetop152 | leetcode150 LFU Cache Bucket All O`one Data Structure Bucket Maximum Frequency Stack Bucket grind169 Range Sum Query - Mutable Fenwick Tree | Segment Tree
Position Tracking ⓘ
                    Cumulative Scans
                    2 Pointers, 3 Pointers, Shrinking Window, Sliding Window, 
                    scanr is scanning from right, and not right-associate scan (as in haskell's)
                    think of it as r = reverse, instead of, r = 

                    scans uses its previous result and an element of an array,
                    producing intermediate values that are used (not necessarily saved).
                    saved intermediate values are stored after that separately (eg. dictionary)
                
Kids With the Greatest Number of Candies leetcode75 Can Place Flowers leetcode75 Find the Highest Altitude Prefix Sum leetcode75 Maximum Subarray Kadane neetcode150 | grind169 | leetcodetop152 | leetcode150 Maximum Product Subarray Two Scans | Kadane neetcode150 | grind169 | leetcodetop152 Gas Station Kadane neetcode150 | grind169 | leetcodetop152 | leetcode150 Contiguous Array Memo Umap | Scan grind169 Find Pivot Index Prefix Sum leetcode75 Subarray Sum Equals K Memo Umap | Scan | Prefix Sum grind169 Product of Array Except Self Two Scans neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150 Valid Parenthesis String Two Scans neetcode150
Maximum Average Subarray I leetcode75 Maximum Number of Vowels in a Substring of Given Length leetcode75 Max Consecutive Ones III leetcode75 Longest Subarray of 1's After Deleting One Element leetcode75 Jump Game Two Pointers | Sliding Window Seek Ahead neetcode150 | grind169 | leetcodetop152 | leetcode150 Jump Game II Three Pointers | Sliding Window Seek Ahead neetcode150 | leetcode150 Partition Labels Three Pointers | Sliding Window Seek Ahead neetcode150 Permutation in String Two Pointers | Sliding Window Fixed Length neetcode150 Find All Anagrams in a String Two Pointers | Sliding Window Fixed Length grind169 Longest Substring Without Repeating Characters Two Pointers | Sliding Window Seek Behind neetcode150 | grind169 | leetcodetop152 | leetcode150 Longest Repeating Character Replacement Two Pointers | Sliding Window Seek Behind neetcode150 | grind169 Reverse Words in a String Three Pointers | Sliding Window Seek Behind leetcode75 | leetcode150 String Compression Three Pointers | Sliding Window Seek Behind leetcode75 Minimum Window Substring Two Pointers | Sliding Window Seek Behind neetcode150 | grind169 | leetcodetop152 | leetcode150 Substring with Concatenation of All Words Multiple Sliding Windows leetcode150
Valid Palindrome Two Pointers | Shrinking Window neetcode150 | grind169 | leetcodetop152 | leetcode150 Squares of a Sorted Array Two Pointers | Shrinking Window grind169 Reverse Vowels of a String Two Pointers | Shrinking Window leetcode75 Two Sum II - Input Array Is Sorted Two Pointers | Shrinking Window Find neetcode150 | leetcode150 3Sum Three Pointers | Shrinking Window Find neetcode150 | grind169 | leetcodetop152 | leetcode150 3Sum Closest Three Pointers | Shrinking Window Find grind169 Sort Colors Three Pointers | Shrinking Window Writer grind169 | leetcodetop152 Container With Most Water Two Pointers | Shrinking Window neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150 Trapping Rain Water Two Pointers | Shrinking Window neetcode150 | grind169 | leetcodetop152 | leetcode150
Backspace String Compare Stack grind169 Merge Strings Alternately leetcode75
Linked List Cycle %Linked List | Two Pointers Slow Fast | Floyd | Cycle Detection neetcode150 | grind169 | leetcodetop152 | leetcode150 Linked List Cycle II %Linked List | Two Pointers Slow Fast | Floyd | Cycle Detection Middle of the Linked List %Linked List | Two Pointers Slow Fast grind169 Delete the Middle Node of a Linked List %Linked List | Two Pointers Slow Fast leetcode75 Palindrome Linked List %Linked List | Two Pointers Slow Fast grind169 | leetcodetop152 Reorder List %Linked List | Two Pointers Slow Fast neetcode150 | grind169 Remove Nth Node From End of List %Linked List | Two Pointers Slow Fast neetcode150 | grind169 | leetcodetop152 | leetcode150 Find the Duplicate Number Two Pointers Slow Fast neetcode150 | grind169 | leetcodetop152
Orderedness ⓘ
                    Monotonic Stacks, Monotonic Queues, Binary Search, Partial Sort, Sort
                
Daily Temperatures Monotonic Stack neetcode150 | grind169 | leetcode75 Online Stock Span Monotonic Stack leetcode75 Remove Duplicate Letters Monotonic Stack | Greedy Car Fleet Monotonic Stack neetcode150 Largest Rectangle in Histogram Monotonic Stack | Segment Tree neetcode150 | grind169 | leetcodetop152 Number of Visible People in a Queue Monotonic Stack Sliding Window Maximum Monotonic Deque neetcode150 | grind169 | leetcodetop152
Longest Common Prefix grind169 | leetcodetop152 | leetcode150 Majority Element Boyer Moore grind169 | leetcodetop152 | leetcode150 K Closest Points to Origin neetcode150 | grind169 Top K Frequent Words grind169 Hand of Straights neetcode150 Top K Frequent Elements Hash Count | Partial Sort neetcode150 | leetcodetop152 Group Anagrams Hash Index | Full Sort neetcode150 | grind169 | leetcodetop152 | leetcode150 Largest Number Custom Sort Comparator grind169 | leetcodetop152 Search Suggestions System Binary Search Shrinking Window leetcode75 Median of Two Sorted Arrays neetcode150 | grind169 | leetcodetop152 | leetcode150
Insert Interval %Intervals neetcode150 | grind169 | leetcode150 Merge Intervals %Intervals neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150 Non-overlapping Intervals %Intervals neetcode150 | grind169 | leetcode75 Minimum Number of Arrows to Burst Balloons %Intervals leetcode75 | leetcode150 Minimum Interval to Include Each Query %Intervals | Heap | Binary Search neetcode150
Guess Number Higher or Lower leetcode75 Successful Pairs of Spells and Potions leetcode75 Binary Search neetcode150 | grind169 Search Insert Position leetcode150 First Bad Version grind169 | leetcodetop152 Find Minimum in Rotated Sorted Array neetcode150 | grind169 | leetcode150 Find Minimum in Rotated Sorted Array II Search in Rotated Sorted Array neetcode150 | grind169 | leetcodetop152 | leetcode150 Find K Closest Elements grind169 Search a 2D Matrix neetcode150 | grind169 | leetcode150 Koko Eating Bananas std::ranges::iota_view neetcode150 | leetcode75 Time Based Key-Value Store neetcode150 | grind169
Is Subsequence Subsequence leetcode75 | leetcode150 Increasing Triplet Subsequence Subsequence leetcodetop152 | leetcode75
Node Traversal ⓘ
Linked List, Binary Tree, N-ary Tree, Square Grid
                    Can the number of visits be determined up-front?
                    Linked List: Head Recursion
                                 Tail Recursion
                    Binary Tree: Breadth First Search
                                 Depth   First Search  PreOrder
                                 Depth   First Search   InOrder
                                 Depth   First Search PostOrder
                    N-ary Tree : Depth First Search Branch Local
                    Grid       : Breadth First Search
                                 Depth First Search
                    Other Trees: Segment Tree
                                 Interval Tree
                                 Binary Indexed Tree
                                 Range Tree
                
Merge Two Sorted Lists %Linked List | Head Recursion neetcode150 | grind169 | leetcodetop152 | leetcode150 Reverse Linked List %Linked List | Tail Recursion neetcode150 | grind169 | leetcodetop152 | leetcode75 Maximum Twin Sum of a Linked List %Linked List | Tail Recursion leetcode75 Add Two Numbers neetcode150 | grind169 | leetcodetop152 | leetcode150 Swap Nodes in Pairs grind169 Odd Even Linked List grind169 | leetcodetop152 | leetcode75 Sort List grind169 | leetcodetop152 | leetcode150 Rotate List grind169 | leetcode150 Reverse Nodes in k-Group neetcode150 | grind169 | leetcode150
Invert Binary Tree BFS | DFS neetcode150 | grind169 | leetcode150 Maximum Depth of Binary Tree BFS | DFS neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150 Diameter of Binary Tree DFS neetcode150 | grind169 Balanced Binary Tree DFS neetcode150 | grind169 Same Tree DFS neetcode150 | grind169 | leetcode150 Subtree of Another Tree DFS neetcode150 | grind169 Symmetric Tree DFS grind169 | leetcodetop152 | leetcode150 Leaf-Similar Trees BFS | DFS leetcode75 Construct Binary Tree from Preorder and Inorder Traversal Binary Tree | DFS PreOrder neetcode150 | grind169 | leetcodetop152 | leetcode150 Construct Binary Tree from Inorder and Postorder Traversal leetcode150 Construct Binary Tree from Preorder and Postorder Traversal Serialize and Deserialize Binary Tree Binary Tree | DFS PreOrder | BFS neetcode150 | grind169 | leetcodetop152 Flatten Binary Tree to Linked List DFS PostOrder leetcode150 Binary Tree Level Order Traversal BFS | DFS neetcode150 | grind169 | leetcodetop152 | leetcode150 Maximum Width of Binary Tree BFS grind169 Binary Tree Right Side View BFS neetcode150 | grind169 | leetcode75 | leetcode150 Maximum Level Sum of a Binary Tree BFS | DFS leetcode75 Binary Tree Zigzag Level Order Traversal BFS grind169 | leetcodetop152 | leetcode150 Count Good Nodes in Binary Tree DFS neetcode150 | leetcode75 Longest ZigZag Path in a Binary Tree DFS leetcode75 Kth Smallest Element in a BST DFS InOrder neetcode150 | grind169 | leetcodetop152 | leetcode150 All Nodes Distance K in Binary Tree BFS | DFS grind169 Path Sum II BFS | DFS grind169 Path Sum III DFS grind169 | leetcode75 Binary Tree Maximum Path Sum DFS PostOrder neetcode150 | grind169 | leetcodetop152 | leetcode150 Lowest Common Ancestor of a Binary Tree DFS PostOrder grind169 | leetcodetop152 | leetcode75 | leetcode150
Convert Sorted Array to Binary Search Tree Binary Tree | DFS PreOrder grind169 | leetcodetop152 | leetcode150 Search in a Binary Search Tree BST leetcode75 Delete Node in a BST BST leetcode75 Lowest Common Ancestor of a Binary Search Tree BST neetcode150 | grind169 Validate Binary Search Tree BST neetcode150 | grind169 | leetcodetop152 | leetcode150
Flood Fill grind169 01 Matrix DP grind169 Number of Islands DFS Grid neetcode150 | grind169 | leetcodetop152 | leetcode150 Max Area of Island DFS Grid neetcode150 Pacific Atlantic Water Flow neetcode150 | grind169 Surrounded Regions DFS Grid neetcode150 | leetcodetop152 | leetcode150 Nearest Exit from Entrance in Maze BFS leetcode75 Rotting Oranges BFS neetcode150 | grind169 | leetcode75 Word Search DFS Grid neetcode150 | grind169 | leetcodetop152 | leetcode150 Word Search II Trie | Backtracking Grid neetcode150 | grind169 | leetcodetop152 | leetcode150 Swim in Rising Water Priority Queue | Binary Search | DFS | BFS | Union Find neetcode150
Word Ladder BFS neetcode150 | grind169 | leetcodetop152 | leetcode150
Combinations Combinatorics leetcode150 Combination Sum Combinatorics neetcode150 | grind169 | leetcode150 Combination Sum II Combinatorics neetcode150 Combination Sum III Combinatorics leetcode75 Combination Sum IV Combinatorics | DP grind169 Permutations Combinatorics neetcode150 | grind169 | leetcodetop152 | leetcode150 Permutations II Combinatorics Subsets Combinatorics neetcode150 | grind169 | leetcodetop152 Subsets II Combinatorics neetcode150 Palindrome Partitioning Combinatorics neetcode150 | leetcodetop152 Letter Combinations of a Phone Number BFS | DFS neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150
Generate Parentheses neetcode150 | grind169 | leetcodetop152 | leetcode150 N-Queens Backtracking Grid neetcode150 | grind169 N-Queens II Backtracking Grid leetcode150 Sudoku Solver Backtracking Grid grind169
Graph Theory ⓘ
                    Classic Graph Algorithms
                
Keys and Rooms DFS | BFS leetcode75 Reorder Routes to Make All Paths Lead to the City Zero DFS | BFS leetcode75
Course Schedule Cycle Detection neetcode150 | grind169 | leetcodetop152 | leetcode150 Course Schedule II Cycle Detection neetcode150 | grind169 | leetcodetop152 | leetcode150 Course Schedule IV Minimum Height Trees grind169
Redundant Connection Union Find neetcode150 Accounts Merge Union Find grind169 Number of Provinces Union Find leetcodetop152 Evaluate Division Union Find leetcode75 | leetcode150 Maximum Number of Non-Overlapping Substrings Strongly Connected Components Critical Connections in a Network Bridges and Articulation Points
Min Cost to Connect All Points neetcode150 Find Critical and Pseudo-Critical Edges in Minimum Spanning Tree
Cheapest Flights Within K Stops Single Source Shortest Path neetcode150 | grind169 Network Delay Time neetcode150 Find the City With the Smallest Number of Neighbors at a Threshold Distance All Pairs Shortest Path Bus Routes Multi Source Shortest Path grind169
Is Graph Bipartite? Bipartite Graph Possible Bipartition Bipartite Graph Maximum Students Taking Exam Min Cut Max Flow | Bit Manipulation
Reconstruct Itinerary Euler Path neetcode150
Clone Graph neetcode150 | grind169 | leetcode150
Dynamic Programming ⓘ
                    optimal substructure, overlapping subproblems
                    Fibonacci
                    Knapsack
                    Pathfinding
                    Position

                    y-axis definition
                    x-axis definition
                    base case
                    general case
                    recurrence relationship / finite state machine / choices
                    memoization

                    subarrays
                    subsequences



                    bottom-up:
                    // optimal substructure:   build up result starting after base cases,
                    // overlapping subproblem: caching only relevant results for future processing.
                    top-down:
                    // overlapping subproblem: return base case or cached result if available,
                    // optimal substructure:   otherwise calculate and cache result, before returning.
                    // check conditions in order: out-of-bounds, cached, base cases, general case.
                
N-th Tribonacci Number DP Fibonacci leetcode75 Climbing Stairs DP Fibonacci neetcode150 | grind169 | leetcodetop152 | leetcode150 Min Cost Climbing Stairs DP Fibonacci neetcode150 | leetcode75 Decode Ways DP Fibonacci neetcode150 | grind169 | leetcodetop152 House Robber DP Fibonacci neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150 House Robber II neetcode150 House Robber III Domino and Tromino Tiling leetcode75 Minimum Cost For Tickets
Coin Change Knapsack Unbounded neetcode150 | grind169 | leetcodetop152 | leetcode150 Coin Change II Knapsack Unbounded neetcode150 Perfect Squares Knapsack Unbounded leetcodetop152 Partition Equal Subset Sum Knapsack Bounded neetcode150 | grind169 Target Sum Memo umap | Knapsack Bounded neetcode150 Maximum Profit in Job Scheduling Memo omap | Knapsack Bounded grind169
Best Time to Buy and Sell Stock Scan | Stock Bounded neetcode150 | grind169 | leetcodetop152 | leetcode150 Best Time to Buy and Sell Stock III Scan Parallel | Stock Bounded leetcode150 Best Time to Buy and Sell Stock IV Scan Parallel | Stock Bounded leetcode150 Best Time to Buy and Sell Stock II Stock Unbounded leetcodetop152 | leetcode150 Best Time to Buy and Sell Stock with Transaction Fee Stock Unbounded leetcode75 Best Time to Buy and Sell Stock with Cooldown Stock Unbounded neetcode150 | leetcodetop152
Unique Paths Combinatorics neetcode150 | grind169 | leetcodetop152 | leetcode75 Unique Paths II leetcode150 Unique Paths III Minimum Path Sum DP Position leetcode150 Longest Increasing Path in a Matrix neetcode150 | grind169 | leetcodetop152
Word Break DP Position (end and begin) neetcode150 | grind169 | leetcodetop152 | leetcode150 Word Break II DP Position leetcodetop152 Burst Balloons DP Position neetcode150 | leetcodetop152
Interleaving String neetcode150 | leetcode150 Maximal Square grind169 | leetcode150 Longest Common Subsequence DP Adjacent (forward) neetcode150 | leetcode75 Shortest Common Supersequence DP Adjacent (forward) Edit Distance DP Adjacent (forward) neetcode150 | leetcode75 | leetcode150 Regular Expression Matching neetcode150 | leetcodetop152 Wildcard Matching leetcodetop152 Distinct Subsequences neetcode150 Dungeon Game DP Adjacent (reverse)
Longest Palindromic Substring neetcode150 | grind169 | leetcodetop152 | leetcode150 Palindromic Substrings neetcode150 Longest Increasing Subsequence DP Triangle | Binary Search neetcode150 | grind169 | leetcodetop152 | leetcode150 Russian Doll Envelopes DP Triangle | Binary Search
Others ⓘ
                    Others.
                
Merge Triplets to Form Target Triplet neetcode150
Rotate Image neetcode150 | grind169 | leetcodetop152 | leetcode150 Spiral Matrix neetcode150 | grind169 | leetcodetop152 | leetcode150 Set Matrix Zeroes neetcode150 | grind169 | leetcodetop152 | leetcode150 Happy Number neetcode150 | leetcodetop152 | leetcode150 Plus One neetcode150 | leetcodetop152 | leetcode150 Pow(x, n) neetcode150 | grind169 | leetcodetop152 | leetcode150 Multiply Strings neetcode150 Detect Squares neetcode150 Roman to Integer grind169 | leetcodetop152 | leetcode150 Palindrome Number grind169 | leetcode150 Random Pick with Weight grind169 String to Integer (atoi) String grind169 | leetcodetop152
Single Number neetcode150 | grind169 | leetcodetop152 | leetcode75 | leetcode150 Number of 1 Bits neetcode150 | grind169 | leetcodetop152 | leetcode150 Counting Bits neetcode150 | grind169 | leetcode75 Reverse Bits neetcode150 | grind169 | leetcodetop152 | leetcode150 Missing Number neetcode150 | grind169 | leetcodetop152 Minimum Flips to Make a OR b Equal to c leetcode75 Sum of Two Integers neetcode150 | leetcodetop152 Reverse Integer neetcode150 | grind169 | leetcodetop152 Add Binary grind169 | leetcode150
Meeting Rooms neetcode150 | grind169 Meeting Rooms II neetcode150 | grind169 | leetcodetop152 Employee Free Time grind169 Encode and Decode Strings neetcode150 | grind169 Shortest Path to Get Food grind169 Graph Valid Tree neetcode150 | grind169 Number of Connected Components in an Undirected Graph neetcode150 | grind169 Minimum Knight Moves grind169 Alien Dictionary neetcode150 | grind169 | leetcodetop152 Inorder Successor in BST grind169 | leetcodetop152 Design In-Memory File System grind169 Design Hit Counter grind169 Walls And Gates neetcode150 Missing Ranges leetcodetop152 Flatten 2D Vector leetcodetop152 Design Tic-Tac-Toe leetcodetop152 Find the Celebrity leetcodetop152 Longest Substring with At Most K Distinct Characters leetcodetop152 Range Sum Query 2D - Mutable leetcodetop152
Intersection of Two Arrays II leetcodetop152 Reverse String leetcodetop152 First Unique Character in a String leetcodetop152 Find the Index of the First Occurrence in a String leetcodetop152 | leetcode150 Delete Node in a Linked List leetcodetop152 Shuffle an Array leetcodetop152 Fizz Buzz leetcodetop152 Count Primes leetcodetop152 Power of Three leetcodetop152 Hamming Distance leetcodetop152 Pascal's Triangle leetcodetop152 Count and Say leetcodetop152 Intersection of Two Linked Lists leetcodetop152 Binary Tree Inorder Traversal leetcodetop152 Populating Next Right Pointers in Each Node leetcodetop152 Find First and Last Position of Element in Sorted Array leetcodetop152 | leetcode150 Search a 2D Matrix II leetcodetop152 Factorial Trailing Zeroes leetcodetop152 | leetcode150 Excel Sheet Column Number leetcodetop152 Sqrt(x) leetcodetop152 | leetcode150 Divide Two Integers leetcodetop152 Fraction to Recurring Decimal leetcodetop152 4Sum II leetcodetop152 Game of Life leetcodetop152 | leetcode150 Count of Smaller Numbers After Self leetcodetop152 Remove Invalid Parentheses leetcodetop152 Wiggle Sort II leetcodetop152 Kth Smallest Element in a Sorted Matrix leetcodetop152 Max Points on a Line leetcodetop152 | leetcode150 Queue Reconstruction by Height leetcodetop152
H-Index leetcode150 Candy leetcode150 Integer to Roman leetcode150 Length of Last Word leetcode150 Zigzag Conversion leetcode150 Text Justification leetcode150 Minimum Size Subarray Sum leetcode150 Isomorphic Strings leetcode150 Word Pattern leetcode150 Contains Duplicate II leetcode150 Summary Ranges leetcode150 Simplify Path leetcode150 Reverse Linked List II leetcode150 Remove Duplicates from Sorted List II leetcode150 Partition List leetcode150 Populating Next Right Pointers in Each Node II leetcode150 Path Sum leetcode150 Sum Root to Leaf Numbers leetcode150 Binary Search Tree Iterator leetcode150 Count Complete Tree Nodes leetcode150 Average of Levels in Binary Tree leetcode150 Minimum Absolute Difference in BST leetcode150 Snakes and Ladders leetcode150 Minimum Genetic Mutation leetcode150 Construct Quad Tree leetcode150 Maximum Sum Circular Subarray leetcode150 Find K Pairs with Smallest Sums leetcode150 Single Number II leetcode150 Bitwise AND of Numbers Range leetcode150 Triangle leetcode150
Distributed Systems ⓘ
                    NUS CS5223 Distributed Systems Lab.
                    Solutions run on the backend and are not made publicly available.

                    Important concepts to understand (why it matters, what useful properties):
                    - Exactly-Once
                    - Idempotency
                    - Monotonicity
                    - Linearizability
                    - Consensus
                    - Quorum

                    Important protocols to design, implement, and optimize for (latency, throughput, fairness):
                    - Asynchronous Replication
                    - Synchronous Failover
                    - Leader Election
                    - Multi-Paxos
                    - Shard Reconfigurations
                    - Two-Phase Commit

                    Part II of the book "Designing Data-Intensive Applications" can provide a starting foundation.
                

            
            
            
        

            
            
            
        

            
            
            
        

            
            
            
        
Machine Learning ⓘ