⚡ Early Bird Sale is Live!

Grab Deal

Microsoft Interview Questions

Prepare for success with our curated collection of interview questions. Designed to help students practice and build confidence, these questions cover a range of topics and real-world scenarios to get you ready for your next interview.
Q1: Validate Binary Search Tree

Description: Given a binary tree, determine if it is a valid Binary Search Tree (BST). A valid BST must have all left subtree nodes < root and all right subtree nodes > root, recursively for all nodes. In-order traversal or recursion with min/max bounds is typically used.

Example 1: 

Input: root = [2,1,3]
Output: true

Example 2: 

Input: root = [5,1,4,null,null,3,6]
Output: false
Explanation: The root node's value is 5 but its right child's value is 4.

 Check whether a binary tree is height-balanced. A tree is balanced if for every node, the heights of left and right subtrees differ by at most one.

Example 1: 

Input: root = [3,9,20,null,null,15,7]
Output: true

Example 2: 

Input: root = [1,2,2,3,3,null,null,4,4]
Output: false

Detect if a linked list has a cycle, and return the starting node of the cycle if it exists. Use two pointers (slow/fast, Floyd’s Tortoise and Hare).

Example 1:

Input: head = [3,2,0,-4], pos = 1

Output: tail connects to node index 1

Explanation: There is a cycle in the linked list, where tail connects to the second node.

Example 2:

Input: head = [1,2], pos = 0

Output: tail connects to node index 0

Explanation: There is a cycle in the linked list, where tail connects to the first node.

Given a binary search tree and two nodes, return their lowest common ancestor—the deepest node that has both as descendants.

 

Example 1:

 

Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
Output: 6
Explanation: The LCA of nodes 2 and 8 is 6.

Example 2:

 

Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
Output: 2
Explanation: The LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself according to the LCA definition.

Description: Find target in a rotated sorted array (in O(log n)), using binary search with careful pivoting.

Example 1:

Input: nums = [4,5,6,7,0,1,2], target = 0
Output: 4

Example 2:

Input: nums = [4,5,6,7,0,1,2], target = 3
Output: -1

Example 3:

Input: nums = [1], target = 0
Output: -1

Description: Return a deep copy of a linked list where each node has a random pointer; do this in O(n) space, preferably in O(1) extra space via interleaving new nodes.

 

Example 1:

 

Input: head = [[7,null],[13,0],[11,4],[10,2],[1,0]]
Output: [[7,null],[13,0],[11,4],[10,2],[1,0]]

Example 2:

 

Input: head = [[1,1],[2,1]]
Output: [[1,1],[2,1]]

Description: Design and implement an LRU (Least Recently Used) cache supporting O(1) operations for put and get. Combines hashmap + doubly linked list.

 

Example 1:

Input
["LRUCache", "put", "put", "get", "put", "get", "put", "get", "get", "get"]
[[2], [1, 1], [2, 2], [1], [3, 3], [2], [4, 4], [1], [3], [4]]
Output
[null, null, null, 1, null, -1, null, -1, 3, 4]

Explanation
LRUCache lRUCache = new LRUCache(2);
lRUCache.put(1, 1); // cache is {1=1}
lRUCache.put(2, 2); // cache is {1=1, 2=2}
lRUCache.get(1);    // return 1
lRUCache.put(3, 3); // LRU key was 2, evicts key 2, cache is {1=1, 3=3}
lRUCache.get(2);    // returns -1 (not found)
lRUCache.put(4, 4); // LRU key was 1, evicts key 1, cache is {4=4, 3=3}
lRUCache.get(1);    // return -1 (not found)
lRUCache.get(3);    // return 3
lRUCache.get(4);    // return 4

Description: Given nums and target, return indices of two numbers such that they add up to target. Hashmap is the standard method for O(n) time.

Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].

Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]

Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]

Description: Given a string, find length of longest substring without repeating characters. Sliding window and hashset/hashmap are used.

Example 1:

Input: s = "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3. Note that "bca" and "cab" are also correct answers.

Example 2:

Input: s = "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3:

Input: s = "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.

Description: Find the total number of continuous subarrays within array that sum to k. Use prefix sum + hashmap for O(n) time solution.

Example 1:

Input: nums = [1,1,1], k = 2
Output: 2

Example 2:

Input: nums = [1,2,3], k = 3
Output: 2
Q1. Design a Parking Lot System

Description: Build a class structure for a parking lot with vehicles (car, bike), slots, entry/exit handling, ticket issuance, slot allocation, and possibly payment. Should allow for extension to electric/handicapped spots etc.

Description: Implement classes for a hierarchical file system: Folder, File; methods for create, delete, move, and search. Ensure efficient lookups and modular design; may support permissions and versioning.

Description: Design an extensible class set for charging stations supporting multiple levels. Discuss requirements, modular design, implement strategies (e.g., allocation, payment, usage)

Description: Modular and extensible class-based design for chess (Board, Piece, Move, Game), supporting Human vs AI opponents.

Description: Design classes for a file system with folders, files, and operations: create, delete, search. Choose appropriate data structures (e.g., tree or trie), ensure modularity and ease of extension.

Description: Implement class structure (Board, Player, Dice, Ladder, Snake, Game), support moves, game state, and possible extensions.

Q1. Distributed Caching System

Description: Architect a system (like Redis/Memcached at scale) for distributed, high-throughput caching with topics including: API design (get/set/invalidate), partitioning/sharding, consistency, cache invalidation, durability, and fault-tolerance.
Expected artifacts: High-level architecture diagrams, discussion of CAP theorem, read/write path.

Description: Full-scale backend for a messaging/communication platform: chatrooms, group and direct messaging, message delivery, retries, notifications, attachments, real-time updates, horizontal scaling.

WhatsApp Icon

Hi Instagram Fam!
Get a FREE Cheat Sheet on System Design.

Hi LinkedIn Fam!
Get a FREE Cheat Sheet on System Design

Loved Our YouTube Videos? Get a FREE Cheat Sheet on System Design.