738.单调递增的数字
题目描述: 738.单调递增的数字.
解法
贪心
class Solution(object):
def monotoneIncreasingDigits(self, n):
if n == 0:
return 0
nums = map(int,list(str(n)))
#print(nums)
length = len(nums)
flag = length
for i in range(length-1,0,-1):
if nums[i] < nums[i-1]:
nums[i] = 9
nums[i-1] -= 1
flag = i
while flag < length:
nums[flag] = 9
flag += 1
#if nums[0] == 0:
# nums = nums[1:]
return int(''.join(map(str,nums)))
从后向前判断,后小于前就更改后为9,前-1。