用邮箱地址做网站域名好吗济南网站建设公司选济南网络
代码随想录第三十七天
- Leetcode 738. 单调递增的数字
Leetcode 738. 单调递增的数字
题目链接: 单调递增的数字
自己的思路:完全想不到!!
正确思路:大致思路是从后向前遍历,不可以从前向后,如果从前向后没有保证单调递增的顺序,所以从后向前遍历,如果当前位的前一位大于当前位,说明是递减的,所以我们就把前一位–,然后记录一下当前位的索引,我们后面把这个索引对应的数标志为’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;i>0;i--){if (chars[i-1]>chars[i]){chars[i-1]--;flag = i;}}//将记录的那一位后面全都赋值为9for (int i=flag;i<chars.length;i++){chars[i]='9';}return Integer.parseInt(String.valueOf(chars));}
}