Coding questions
IBM Online Assessment
Overview
Detailed public write-ups on the IBM online test are still hard to find.
What public reports and campus notices usually say (still verify officially):
| Item | Working note |
|---|---|
| Online test name | IBM Online Assessment |
| Focus areas (metadata) | DSA, aptitude |
| Languages (metadata) | Java, Python, C++, JavaScript. |
| Reported round names | (OA → Technical Interview → HR). |
Practice drills
Coding Q1: 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
IBM 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.
Coding Q2: 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
IBM 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.
Coding Q3: 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
IBM 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.
Coding Q4: 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)
IBM 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.
What to do next
- Open the official careers page or your college placement email for IBM
- Search GeeksforGeeks + Reddit for
IBM interview experience - Use Faceprep / PrepInsta only if they match your placement email

