TikTok Interview Questions 2027: Coin Change (LeetCode 322)
For this TikTok interview question — fewest coins for an amount (LeetCode 322) — use bottom-up DP: dp[i] = min over coins c of dp[i−c]+1, with dp[0]=0 and the rest at infinity; return −1 if dp[amount] stays infinite. State the recurrence first — and note why greedy fails.
TikTok Interview Questions: What Coin Change Tests
Coin Change is commonly reported by candidates in TikTok coding interviews as the canonical "do you actually understand DP" problem. The greedy approach — always take the largest coin — fails on cases like coins [1, 3, 4] with amount 6, and interviewers specifically watch whether you notice that. They are testing three things: recognizing optimal substructure, writing the recurrence correctly, and handling the impossible case. It is also a frequent follow-up springboard (count combinations, minimum coins with limited supply).
TikTok Interview Questions: How to Solve Step by Step
- Kill greedy first. "A greedy largest-first approach fails — e.g., coins [1,3,4], amount 6: greedy takes 4+1+1 (3 coins) but 3+3 (2 coins) is optimal. So this needs DP." Saying this unprompted is a strong signal.
- Define the state. dp[i] = fewest coins to make amount i. The answer is dp[amount].
- Write the recurrence. dp[i] = min over coins c ≤ i of (dp[i - c] + 1). Explain it: "to make amount i, try every coin as the last coin and take the best."
- Initialize. dp array of size amount+1 filled with infinity (amount+1 works as "infinity"); dp[0] = 0 — zero coins make amount zero.
- Iterate bottom-up. For i from 1 to amount, for each coin ≤ i, relax dp[i]. Return -1 if dp[amount] is still infinite.
- Trace a small case. Walk through coins [1,2,5], amount 11 narrating dp values — interviewers love the trace, and it catches bugs.
Example line: "The recurrence is the solution: every optimal way to make amount i ends with some coin c, so it equals one plus the optimal way to make i minus c."
Common Mistakes
- Greedy. The single most common failure — always address why greedy is wrong first.
- Forgetting the -1 case. Amounts that cannot be formed must return -1, not infinity or zero.
- Wrong initialization. dp values must start at "infinity" (amount+1), not 0 — otherwise the min is meaningless.
Keep Reading
- lazard conflicting priorities weakness
- TikTok Backend Interview: LeetCode Questions & Follow-Ups
- TikTok HackerRank Arrays & Strings: Questions You Must Practice
FAQ
What are the time and space complexities? O(amount × coins) time, O(amount) space.
Is there a top-down version? Yes — memoized recursion on the same recurrence; bottom-up is usually cleaner here.
What is the classic follow-up? "Count the number of combinations" (LeetCode 518) — note the loop order flips to avoid counting permutations.
How do I avoid integer overflow on infinity? Use amount + 1 as infinity — it can never be a real answer, so the -1 check is safe.
Preparing for TikTok's interview? Our 2027 TikTok Online Hackerrank Coding Assessment Tutorials has practice questions and answers — $79 one-time, instant download.












































