# 贪心算法,思路不难想,但代码不好写!LeetCode:738.单调自增的数字 # # 当且仅当每个相邻位数上的数字x和y满足x <= y时,我们称这个整数是单调递增的。 # # 给定一个整数n ,返回小于或等于n的最大数字,且数字呈单调递增 。 # # # # 示例1: # 输入: n = 10 # 输出: 9 # # 示例2: # 输入: n = 1234 # 输出: 1234 # # 示例3: # 输入: n = 332 # 输出: 299 def get_most_num(n): if n == 0: return 0 str_n = list(str(n)) flag = len(str_n) for i in range(len(str_n)-2, -1, -1): if int(str_n[i]) > int(str_n[i+1]): str_n[i] = str(int(str_n[i])-1) flag = i+1 for j in range(flag, len(str_n)): str_n[j] = '9' return ''.join(str_n).lstrip('0') n = 10 print(get_most_num(n))