Given a non-negative integer N, find the largest number that is less than or equal to N with monotone increasing digits.
(Recall that an integer has monotone increasing digits if and only if each pair of adjacent digits x and y satisfy x .)
Example 1:
Input: N = 10
Output: 9
Example 2:
Input: N = 1234
Output: 1234
Example 3:
Input: N = 332
Output: 299
Note:
N is an integer in the range [0, 10^9].
class Solution:
     def monotoneIncreasingDigits(self, N):
         """
         :type N: int
         :rtype: int
         """
         NN = ('000000000000000000' + str(N))[-11:]
         chron = '0'
         for i in range(10):
             maxpossible = int(chron[-1])
             for fill in range(int(chron[-1]),10):
                 if chron + str(fill)*(10-i) <= NN:
                     maxpossible = fill
             chron = chron + str(maxpossible)
         return int(chron)
 

class Solution:
     def monotoneIncreasingDigits(self, N):
         """
         :type N: int
         :rtype: int
         """
         NN = ('000000000000000000' + str(N))[-11:]
         chron = '0'
         for i in range(10):
             maxpossible = int(chron[-1])
             for fill in range(int(chron[-1]),10):
                 if chron + str(fill)*(10-i) <= NN:
                     maxpossible = fill
             chron = chron + str(maxpossible)
         return int(chron)
 
