1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| // @Title: 单调递增的数字 (Monotone Increasing Digits)
// @Author: 15816537946@163.com
// @Date: 2020-12-15 23:54:17
// @Runtime: 0 ms
// @Memory: 2 MB
// 贪心
func monotoneIncreasingDigits(N int) int {
s := []byte(strconv.Itoa(N))
for i := len(s) - 2; 0 <= i; i-- {
if s[i] <= s[i+1] {
continue
}
// 当 s[i] > s[i+1] 时
s[i]--
// s[i+1:] 中的数字全部变成 9
for j := i + 1; j < len(s); j++ {
s[j] = '9'
}
}
res, _ := strconv.Atoi(string(s))
return res
}
|