Interview Preperation Notes
Array
- Two Sum - Leetcode #1
- Best Time to Buy and Sell Stock - Leetcode #121
- Majority Element - Leetcode #169
- Contains Duplicate - Leetcode #217
- Meeting Rooms - Leetcode #252
- Move Zeroes - Leetcode #283
- Squares of a Sorted Array - Leetcode #977
- Insert Interval - Leetcode #57
- 3Sum - Leetcode #15
- Product of Array Except Self - Leetcode #238
- Combination Sum - Leetcode #39
- Merge Intervals - Leetcode #56
- Sort Colors - Leetcode #75
- Container with Most Water - Leetcode #11
- Gas Station - Leetcode #134
- Longest Consecutive Sequence - Leetcode #128
- Rotate Array - Leetcode #189
- Contiguous Array - Leetcode #525
- Subarray Sum Equals K - Leetcode #560
- Meeting Rooms II - Leetcode #253
- 3Sum Closest - Leetcode #16
- Non-overlapping Intervals - Leetcode #435
- Employee Free Time - Leetcode #759
- Sliding Window Maximum - Leetcode #239
Hash table
- Ransom Note - Leetcode #383
- Insert Delete GetRandom O(1) - Leetcode #380
- First Missing Positive - Leetcode #41
Math
- Roman to Integer - Leetcode #13
- Palindrome Number - Leetcode #9
- Random Pick with Weight - Leetcode #528
- Pow(x, n) - Leetcode #50
- Reverse Integer - Leetcode #7
Matrix
- Spiral Matrix - Leetcode #54
- Valid Sudoku - Leetcode #36
- Rotate Image - Leetcode #48
- Set Matrix Zeroes - Leetcode #73
- Sudoku Solver - Leetcode #37
Linked lists
- Merge Two Sorted Lists - Leetcode #21
- Linked List Cycle - Leetcode #141
- Reverse Linked List - Leetcode #206
- Middle of the Linked List - Leetcode #876
- Palindrome Linked List - Leetcode #234
- LRU Cache - Leetcode #146
- Remove Nth Node From End of List - Leetcode #19
- Swap Nodes in Pairs - Leetcode #24
- Odd Even Linked List - Leetcode #328
- Add Two Numbers - Leetcode #2
- Sort List - Leetcode #148
- Reorder List - Leetcode #143
- Rotate List - Leetcode #61
- Reverse Nodes in k-Group - Leetcode #25
Binary
- Add Binary - Leetcode #67
- Counting Bits - Leetcode #338
- Number of 1 Bits - Leetcode #191
- Single Number - Leetcode #136
- Missing Number - Leetcode #268
- Reverse Bits - Leetcode #190
- Find the Duplicate Number - Leetcode #287
Binary search
- Binary Search - Leetcode #704
- First Bad Version - Leetcode #278
- Search in Rotated Sorted Array - Leetcode #33
- Time Based Key-Value Store - Leetcode #981
- Search a 2D Matrix - Leetcode #74
- Find Minimum in Rotated Sorted Array - Leetcode #153
- Maximum Profit in Job Scheduling - Leetcode #1235
- Median of Two Sorted Arrays - Leetcode #4
Recursion
- Permutations - Leetcode #46
- Subsets - Leetcode #78
- Letter Combinations of a Phone Number - Leetcode #17
- Next Permutation - Leetcode #31
- Generate Parentheses - Leetcode #22
- N-Queens - Leetcode #51
Stack
- Valid Parentheses - Leetcode #20
- Implement Queue using Stacks - Leetcode #232
- Backspace String Compare - Leetcode #844
- Evaluate Reverse Polish Notation - Leetcode #150
- Min Stack - Leetcode #155
- Daily Temperatures - Leetcode #739
- Decode String - Leetcode #394
- Asteroid Collision - Leetcode #735
- Basic Calculator II - Leetcode #227
- Trapping Rain Water - Leetcode #42
- Basic Calculator - Leetcode #224
- Largest Rectangle in Histogram - Leetcode #84
- Maximum Frequency Stack - Leetcode #895
- Longest Valid Parentheses - Leetcode #32
String
- Valid Palindrome - Leetcode #125
- Valid Anagram - Leetcode #242
- Longest Palindrome - Leetcode #409
- Longest Common Prefix - Leetcode #14
- Longest Substring Without Repeating Characters - Leetcode #3
- String to Integer (atoi) - Leetcode #8
- Longest Palindromic Substring - Leetcode #5
- Find All Anagrams in a String - Leetcode #438
- Group Anagrams - Leetcode #49
- Longest Repeating Character Replacement - Leetcode #424
- Largest Number - Leetcode #179
- Encode and Decode Strings - Leetcode #271
- Minimum Window Substring - Leetcode #76
- Palindrome Pairs - Leetcode #336
Queue
- Design Hit Counter - Leetcode #362
Binary Search Tree
- Lowest Common Ancestor of a Binary Search Tree - Leetcode #235
- Convert Sorted Array to Binary Search Tree - Leetcode #108
- Validate Binary Search Tree - Leetcode #98
- Kth Smallest Element in a BST - Leetcode #230
- Inorder Successor in BST - Leetcode #285
Binary Tree
- Invert Binary Tree - Leetcode #226
- Balanced Binary Tree - Leetcode #110
- Diameter of Binary Tree - Leetcode #543
- Maximum Depth of Binary Tree - Leetcode #104
- Same Tree - Leetcode #100
- Subtree of Another Tree - Leetcode #572
- Binary Tree Level Order Traversal - Leetcode #102
- Lowest Common Ancestor of a Binary Tree - Leetcode #236
- Binary Tree Right Side View - Leetcode #199
- Construct Binary Tree from Preorder and Inorder Traversal - Leetcode #105
- Path Sum II - Leetcode #113
- Maximum Width of Binary Tree - Leetcode #662
- Binary Tree Zigzag Level Order Traversal - Leetcode #103
- Path Sum III - Leetcode #437
- All Nodes Distance K in Binary Tree - Leetcode #863
- Serialize and Deserialize Binary Tree - Leetcode #297
- Binary Tree Maximum Path Sum - Leetcode #124
Graph
- Flood Fill - Leetcode #733
- 01 Matrix - Leetcode #542
- Clone Graph - Leetcode #133
- Course Schedule - Leetcode #207
- Number of Islands - Leetcode #200
- Rotting Oranges - Leetcode #994
- Accounts Merge - Leetcode #721
- Word Search - Leetcode #79
- Minimum Height Trees - Leetcode #310
- Pacific Atlantic Water Flow - Leetcode #417
- Shortest Path to Get Food - Leetcode #1730
- Graph Valid Tree - Leetcode #261
- Course Schedule II - Leetcode #210
- Number of Connected Components in an Undirected Graph - Leetcode #323
- Minimum Knight Moves - Leetcode #1197
- Cheapest Flights Within K Stops - Leetcode #787
- Word Ladder - Leetcode #127
- Longest Increasing Path in a Matrix - Leetcode #329
- Word Search II - Leetcode #212
- Alien Dictionary - Leetcode #269
- Bus Routes - Leetcode #815
Heap
- K Closest Points to Origin - Leetcode #973
- Task Scheduler - Leetcode #621
- Top K Frequent Words - Leetcode #692
- Find K Closest Elements - Leetcode #658
- Kth Largest Element in an Array - Leetcode #215
- Find Median from Data Stream - Leetcode #295
- Merge K Sorted Lists - Leetcode #23
- Smallest Range Covering Elements from K Lists - Leetcode #632
Trie
- Implement Trie (Prefix Tree) - Leetcode #208
- Word Break - Leetcode #139
- Design Add and Search Words Data Structure - Leetcode #211
- Design In-Memory File System - Leetcode #588
Dynamic Programming
- Maximum Subarray - Leetcode #53
- Coin Change - Leetcode #322
- Partition Equal Subset Sum - Leetcode #416
- Unique Paths - Leetcode #62
- House Robber - Leetcode #198
- Maximum Product Subarray - Leetcode #152
- Longest Increasing Subsequence - Leetcode #300
- Jump Game - Leetcode #55
- Maximal Square - Leetcode #221
- Decode Ways - Leetcode #91
- Combination Sum IV - Leetcode #377
Microservices
Application Architecture
- Application API: Defines the endpoints and methods for communication between microservices and external clients.
- Architecting: The process of designing the structure and interactions of microservices to meet business and technical requirements.
- Architecture Documentation: Detailed documentation of the microservices architecture, including diagrams, data flow, and service interactions.
- Dark Energy and Dark Matter: This seems unrelated to microservices. You might want to replace it with a relevant topic.
- Loose Coupling: Ensuring that microservices are independent and changes in one service do not affect others.
- Microservice Architecture: An architectural style that structures an application as a collection of loosely coupled services.
- Observability: Techniques and tools to monitor, log, and trace microservices to ensure they are functioning correctly.
- Refactoring to Microservices: The process of breaking down a monolithic application into microservices.
- Security: Implementing security measures such as authentication, authorization, and encryption in microservices.
- Service Collaboration: How microservices interact and collaborate to fulfill business processes.
Deployment
- Docker: A platform for developing, shipping, and running applications in containers.
- Multi-Architecture Docker Images: Docker images that support multiple CPU architectures, such as x86 and ARM.
Development
- Software Delivery Metrics: Metrics to measure the performance and efficiency of software delivery processes in a microservices environment.
Microservices Adoption
- Anti-Patterns: Common pitfalls and mistakes to avoid when adopting microservices.
- Refactoring to Microservices: (Duplicate) Consider merging this with the earlier mention under Application Architecture.
Microservices.io Updates
- Updates and new patterns from the Microservices.io website, which provides resources and patterns for microservices architecture.
Pattern
- Microservice Chassis: A framework that provides common functionalities required by microservices, such as logging, configuration, and health checks.
- Sagas: A pattern for managing distributed transactions in microservices.
- Service Template: A template or blueprint for creating new microservices with standard configurations and practices.
Service Collaboration
- Implementing Commands: Techniques for handling command operations in microservices.
- Implementing Queries: Techniques for handling query operations in microservices.
- Inter-Service Communication: Methods for communication between microservices, such as REST, gRPC, and messaging.
- Service Discovery: Mechanisms for dynamically discovering and connecting to microservices.
- Resilience: Strategies to ensure microservices can handle failures gracefully.
- Service API: The interface through which microservices expose their functionalities.
- Transactional Messaging: Ensuring message delivery and processing consistency in microservices.
Service Design
- Service Collaboration: (Duplicate) Consider merging this with the earlier mention under Application Architecture.
- Service Granularity: Determining the appropriate size and scope of microservices.
- Service Collaboration: (Duplicate) Consider merging this with the earlier mention under Application Architecture.
AlgoMonster