| 
 | 
 
 
发表于 2023-2-23 10:07:07
|
显示全部楼层
 
 
 
- def monotoneIncreasingDigits(n: int) -> int:
 
 -     # 将整数 n 拆分成各位数字
 
 -     digits = []
 
 -     while n > 0:
 
 -         digits.append(n % 10)
 
 -         n //= 10
 
 -     digits.reverse()
 
  
-     # 从最高位开始遍历每个数字
 
 -     i = 1
 
 -     while i < len(digits) and digits[i] >= digits[i - 1]:
 
 -         i += 1
 
 -     if i == len(digits):
 
 -         return n
 
  
-     # 如果当前位数字比前一位小,那么就把当前位数字减 1,同时把当前位后面的所有数字都变成 9
 
 -     while i > 0 and digits[i] < digits[i - 1]:
 
 -         digits[i - 1] -= 1
 
 -         i -= 1
 
 -     for j in range(i + 1, len(digits)):
 
 -         digits[j] = 9
 
  
-     # 把各位数字重新组合成一个整数
 
 -     res = 0
 
 -     for digit in digits:
 
 -         res = res * 10 + digit
 
 -     return res
 
 
  复制代码 |   
 
 
 
 |