Greedy Algorithms - Monotone Increasing Digits
Consider the following Python function that returns the largest monotone increasing digits number less than or equal to
n. What is the output when n = 332?
def monotoneIncreasingDigits(n: int) -> int:
digits = list(map(int, str(n)))
marker = len(digits)
for i in range(len(digits) - 1, 0, -1):
if digits[i] < digits[i - 1]:
digits[i - 1] -= 1
marker = i
for i in range(marker, len(digits)):
digits[i] = 9
return int(''.join(map(str, digits)))
print(monotoneIncreasingDigits(332))
