738. 单调递增的数字
分析
- 将
n
转换为字符串s
- 找到 第一个下降的位置,即前一位大于后一位
- 为了让整体数值最大:
- 将下降点前一个位置的数减
1
- 注意:如果前面有连续相同的数字,需要往前找到第一个不同的数字再减
1
- 注意:如果前面有连续相同的数字,需要往前找到第一个不同的数字再减
- 后面的所有位数填成
'9'
- 将下降点前一个位置的数减
时间复杂度
时间复杂度 O(n)
空间复杂度
空间复杂度 O(n)
C++代码
|
|
n
转换为字符串 s
1
1
'9'
时间复杂度 O(n)
空间复杂度 O(n)
|
|