单调递增的数字

当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。
给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。

  • 输入: n = 10
    输出: 9

  • 输入: n = 1234
    输出: 1234

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var monotoneIncreasingDigits = function(N) {
let n = N.toString();

let arr = Array.from(n); // [x,x,x,x];

let max = N;

for (let i = 1; i < arr.length; i++) {
// 不是递增
if (arr[i - 1] > arr[i]) {
const releng = arr.length - i; // 剩余长度
max = monotoneIncreasingDigits(Number((n.slice(0, i) - 1) + ''.padEnd(releng, '9')));
}
}

return max;
};