The 60-second answer
Use construct the maximum permutation, then find the lexicographically previous distinct permutation. Target O(n log n) if sorting is needed, otherwise O(n) from an ordered arrangement.
Build the answer in this order
1
Clarify constraints
Use construct the maximum permutation, then find the lexicographically previous distinct permutation.
2
Choose the approach
Target O(n log n) if sorting is needed, otherwise O(n) from an ordered arrangement.
3
Prove complexity
Call out edge cases such as duplicate digits, leading zeros, and no distinct second arrangement.
4
Test edge cases
Explain the invariant before coding, then dry-run a small case and state time/space complexity.
A useful interview mental model
This is the shape of a strong answer—not a script to memorize.
01Clarify
02Approach
03Implement
04Test
05Complexity
Senior-level signal
- Clarify whether all digits must be used and how leading zeros are treated before coding.
- Recognize the previous-permutation structure rather than enumerating permutations.
What the interviewer is really testing
Problem decomposition, correctness, data-structure choice, complexity reasoning, and clean implementation under pressure.
Likely follow-up questions
Can you improve the time or space complexity?
Which edge case is most likely to break this solution?
How would you test this under interview time pressure?
Common weak-answer patterns
- Starting to code before constraints are clear.
- Giving complexity without explaining why it is correct.
- Skipping adversarial and boundary cases.