- Every week, I send out 4-6 programming problems with detailed solutions, test cases, and program analysis, all in Go.
- The goal is to help you get good at algorithms and data structures so that you can prepare better for your next coding interviews.
- Interview Cake
- Array and string manipulation
- Merge meeting times
- Reverse string in place
- Reverse words
- Merge sorted arrays
- Single riffle shuffle
- Hashing and hash tables
- In-flight entertainment
- Permutation palindrome
- Word cloud data
- Top scores
- Find duplicate files
- Greedy algorithms
- Sorting, searching, and logarithms
- Find rotation point
- Find repeat
- Trees and graphs
- Dynamic programming and recursion
- Queues and stacks
- Linked lists
- General programming
- Rectangular love
- Temperature tracker
- Bit manipulation
- Combinatorics, probability, and other math
- Which appears twice
- Find in ordered set
- Simulate 5-sided die
- Simulate 7-sided die
- Two egg problem
- TODO: System Design
- Array and string manipulation
- Practical Algorithms and Data Structures
- LeetCode
- Array/String
- Two sum I
- Two sum II
- Valid palindrome
- Implement strstr()
- Reverse words in string
- String to integer
- Valid number
- Longest substring without repeating characters
- TODO: read more about sliding windows problem here
- Missing ranges
- One edit distance
- Read n characters given Read4
- Math
- Linked list
- Merge sorted linked list
- Add two numbers
- Swap nodes in pairs
- Merge k sorted linked list
- Copy list with random pointer
- Binary tree
- Validate binary search tree
- Maximum depth of binary tree
- Minimum depth of binary tree
- Balanced binary tree
- Convert sorted array to balanced binary search tree
- Convert sorted linked list to balanced binary search tree
- Binary tree maximum path sum
- Binary tree upside down
- Bit manipulation
- Misc
- Spiral matrix
- Integer to roman
- Roman to integer
- Clone graph
- Stack
- Min stack
- Evaluate reverse polish notation
- Valid parenthesis
- Dynamic programming
- Climbing stairs
- Unique paths
- Maximum sum subarray
- Maximum product max array
- Coins in a line
- Binary search
- Search insert position
- Find minimum in sorted rotated array
- Array/String
- Cracking the Coding Interviews
- Bit manipulation
- Elements of Programming Interviews
- Grokking the Coding Interview: Patterns for Coding Questions
- Other
- Data structures
- Linked List
- Queue
- Stack
- Tree
- Graph
- Trie
- Heap
- Priority Queue
- Bloom filter
- LRU cache
- Sorting
- Data structures
Clean up, lint source files, run tests and be ready for a push:
make push-ready
Test only:
make test
Test and report:
make cover
Test verbose:
make test-verbose
Lint:
make lint
Clean up:
make clean
For more information:
make help
- Sorting algorithm cheat sheet
- LeetCode patterns
- LeetCode's 50 common interview questions
- Bitwise operators cheat sheet
- Practical Algorithms and Data Structures