CrackML by @ml.with.umang
Interview questions / Python & DSA
Python & DSA interview question

Second Greatest Number From Digits

Arrange a list of digits into the second-greatest valid number.

mediumcodingEvidence 77/1001 source reportMeta

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.