Online assessment
Zerodha Coding Questions
Overview
Practice Zerodha coding questions in the style students report for online assessments and technical interviews. Focus areas: DSA, systems, markets curiosity. Languages commonly allowed: Go, Python, JavaScript.
Zerodha coding pattern
| Item | Typical expectation |
|---|---|
| Problems | 1-3 coding tasks depending on drive |
| Skills | DSA, systems, markets curiosity |
| Languages | Go, Python, JavaScript (use what the assessment email lists) |
| What matters | Correctness first, then speed and clear code |
Practice problems
Question 1: merge overlapping intervals
Coding Q1: Merge overlapping intervals
Problem: Given a list of intervals [start, end], merge all overlapping intervals and return the non-overlapping set that covers the same ranges.
Approach: Sort by start time. Walk once, merging into the last interval in the result when the next start is ≤ current end; otherwise append a new interval.
Complexity: O(n log n) time from the sort
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 2: top k frequent elements
Coding Q2: Top K frequent elements
Problem: Given an integer array and an integer k, return the k most frequent elements. Order among equals can be arbitrary unless the problem says otherwise.
Approach: Count frequencies with a hash map, then use a heap of size k (or bucket sort by frequency) to extract the top k keys.
Complexity: O(n log k) with a heap
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 3: linked list cycle
Coding Q3: Linked list cycle
Problem: Given the head of a linked list, return true if there is a cycle and false otherwise.
Approach: Floyd’s tortoise and hare: move one pointer one step and another two steps. If they meet, a cycle exists. If the fast pointer hits null, there is no cycle.
Complexity: O(n) time, O(1) space
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 4: binary tree level order
Coding Q4: Binary tree level order
Problem: Given the root of a binary tree, return the level-order traversal (breadth-first) as a list of levels.
Approach: Use a queue. For each level, drain the current queue size, collect values, and enqueue children for the next level.
Complexity: O(n) time, O(n) space
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 5: coin change
Coding Q5: Coin change (min coins)
Problem: Given coin denominations and an amount, return the fewest coins needed to make that amount, or -1 if it is impossible.
Approach: Unbounded knapsack DP: let dp[x] be the minimum coins for amount x. For each coin, update dp[c..amount]. Initialize dp[0] = 0 and the rest to a large sentinel.
Complexity: O(amount × coins)
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 6: binary search
Coding Q6: Binary search
Problem: Given a sorted array of distinct integers and a target, return the index of target or -1 if missing.
Approach: Maintain lo/hi. Compare mid with target and shrink the half that cannot contain it. Careful with overflow-free mid and empty arrays.
Complexity: O(log n) time
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 7: move zeros
Coding Q7: Move zeros
Problem: Move all zeros in an array to the end while keeping the relative order of non-zero elements.
Approach: Two pointers: write non-zeros toward the front, then fill the remainder with zeros. Or swap zeros as you scan.
Complexity: O(n) time, O(1) space
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 8: rotate array
Coding Q8: Rotate array
Problem: Rotate an array to the right by k steps. Example: [1,2,3,4,5,6,7], k = 3 → [5,6,7,1,2,3,4].
Approach: Normalize k %= n. Reverse the whole array, reverse the first k elements, then reverse the rest. That yields the rotation in place.
Complexity: O(n) time, O(1) space
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 9: first unique character
Coding Q9: First unique character
Problem: Find the first non-repeating character in a string and return its index, or -1 if none exists.
Approach: Count frequencies in one pass (hash map or array of 26 for lowercase). Second pass returns the first index with count 1.
Complexity: O(n) time
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Question 10: stack with min
Coding Q10: Stack with min
Problem: Design a stack that supports push, pop, top, and getMin in average O(1) time.
Approach: Keep a parallel min-stack (or store pairs). When pushing, also push the new minimum. When popping, pop both stacks.
Complexity: O(1) per operation amortized
Zerodha tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.
Pattern drill plan (2 weeks)
| Day | Drill |
|---|---|
| Mon | Arrays + hashing (2 problems) |
| Tue | Two pointers / sliding window |
| Wed | Stacks / strings |
| Thu | Trees or graphs basics |
| Fri | Timed mock (1-2 problems) |
| Sat | Re-solve misses cold |
| Sun | Explain your project out loud + rest |

