Skip to content

Latest commit

 

History

History
20 lines (20 loc) · 479 Bytes

738单调递增的数字.md

File metadata and controls

20 lines (20 loc) · 479 Bytes
func monotoneIncreasingDigits(n int) int {
    // 局部最优:当出现n[i-1] > n[i]时,n[i-1]--, n[i] = 9
    s := strconv.Itoa(n)
    ss := []byte(s)
    // flag用来标志从哪里开始赋值9
    flag := len(ss)
    for i := len(ss)-1; i > 0; i-- {
        if ss[i-1] > ss[i] {
            flag = i
            ss[i - 1]--
        }
    }
    for i := flag; i < len(ss); i++ {
        ss[i] = '9'
    }
    res, _ := strconv.Atoi(string(ss))
    return res
}