代码随想录算法训练营第三十七天| 738.单调递增的数字

代码随想录算法训练营第三十七天| 738.单调递增的数字

    • 738.单调递增的数字
      • 思路
      • 解题代码

738.单调递增的数字

题目链接:738.单调递增的数字

思路

看完题居然就有了思路:后数字比前数字小,要全改成9,前一个数字减一。
but,代码书写的很多细节需要注意,比如字符串之间的转换等。

解题代码

func monotoneIncreasingDigits(n int) int {
    ss := strconv.Itoa(n)
    s := []byte(ss)  //方便更改
    
    if len(s)<1{
        return n
    }
    for i:=len(s)-1;i>0;i--{
        if s[i] < s[i-1]{   //后数字比前数字小,要全改成9,前一个数字减一
            s[i-1] = s[i-1]-1
            for j:=i;j<len(s);j++{
                s[j] = '9'
            }
        }
    }

    res,_ := strconv.Atoi(string(s))
    return res
}

你可能感兴趣的:(代码随想录训练营,算法,leetcode,数据结构)