738. Monotone Increasing Digits
Medium
An integer has monotone increasing digits if and only if each pair of adjacent digits x
and y
satisfy x <= y
.
Given an integer n
, return the largest number that is less than or equal to n
with monotone increasing digits.
Example 1:
Input: n = 10
Output: 9
Example 2:
Input: n = 1234
Output: 1234
Example 3:
Input: n = 332
Output: 299
Constraints:
0 <= n <= 109
class Solution:
def monotoneIncreasingDigits(self, n: int) -> int:
string = list(str(n))
length = len(string)
startpoint = length
for index in range(length-1, 0, -1):
# print('Index', index)
if string[index-1] > string[index]:
startpoint = index-1
num = int(string[index-1])
# print(num)
string[index-1] = str(num-1)
for index in range(startpoint+1, length):
string[index] = '9'
# print(string)
return int(''.join(string))
Last updated