建网站吧,微信官网电脑版下载,织梦网站后台如何做百度优化,制作销售网站代码随想录第三十七天 Leetcode 738. 单调递增的数字 Leetcode 738. 单调递增的数字
题目链接: 单调递增的数字 自己的思路:完全想不到#xff01;#xff01;
正确思路:大致思路是从后向前遍历#xff0c;不可以从前向后#xff0c;如果从前向后没有保证单调递增的顺序
正确思路:大致思路是从后向前遍历不可以从前向后如果从前向后没有保证单调递增的顺序所以从后向前遍历如果当前位的前一位大于当前位说明是递减的所以我们就把前一位–然后记录一下当前位的索引我们后面把这个索引对应的数标志为’9’然后我们向前遍历如果当前位前一位大于当前位我们就更新这个标志位然后把这个标志位到最后的数都变为’9’一直重复然后最后赋值’9’最后返回结果即可
代码:
class Solution {public int monotoneIncreasingDigits(int n) {String str String.valueOf(n);char[] chars str.toCharArray();int flag chars.length;//如果前面大于后面for (int i chars.length-1;i0;i--){if (chars[i-1]chars[i]){chars[i-1]--;flag i;}}//将记录的那一位后面全都赋值为9for (int iflag;ichars.length;i){chars[i]9;}return Integer.parseInt(String.valueOf(chars));}
}