本文主要是介绍代码随想录|Day31|贪心06|738.单调递增的数字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
738.单调递增的数字
思路:
1. 从右向左遍历
从字符串的最后一位向前遍历,即从低位到高位进行检查。这是因为当我们修改某一位数字时,可能会影响到更低位的数字。
2. 检查并修改数字
在遍历过程中,如果发现当前位数字小于其前一位(即,前一位大于后一位,破坏了单调递增的规则),我们需要对前一位数字进行调整:
- 将前一位数字减1。
- 将这一位及之后所有位数字设置为9。
class Solution:def monotoneIncreasingDigits(self, n: int) -> int:# python的字符串不可变,因此转为lists = list(str(n))for i in range(len(s) - 1, 0, -1):# 如果前一位更大,则前一位 - 1,后序位数全部改为9if s[i-1] > s[i]:s[i-1] = str(int(s[i-1]) - 1)for j in range(i, len(s)):s[j] = '9'return int(''.join(s))
这篇关于代码随想录|Day31|贪心06|738.单调递增的数字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!