本文主要是介绍代码随想录算法训练营第三十七天 738.单调递增的数字 、 968.监控二叉树 (跳过),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码随想录算法训练营第三十七天 | 738.单调递增的数字 、 968.监控二叉树 (跳过)
738.单调递增的数字
题目链接:738. 单调递增的数字 - 力扣(LeetCode)
以98为例, str[i] = 9, str[i + 1] = 8, 要使其变为小于等于98的整数,则 str[i] = 9 - 1 = 8,然后将str[i + 1] 赋值为8
以332为例, str[i] = 3, str[i + 1] = 2, 要使其小于32,则str[i] = 3 - 1 = 2, str[i + 1] = 9
class Solution {public int monotoneIncreasingDigits(int n) {String s = String.valueOf(n);char[] chars = s.toCharArray();// start用来标记赋值9从哪里开始// 设置为这个默认值,为了防止第二个for循环在start没有被赋值的情况下执行int start = s.length();// 从后往前遍历// 以98为例, str[i] = 9, str[i + 1] = 8, 要使其变为小于等于98的整数,则 str[i] = 9 - 1 = 8,然后将str[i + 1] 赋值为8for (int i = s.length() - 2; i >= 0; i--) {if (chars[i] > chars[i + 1]) {chars[i]--;start = i+1;}}for (int i = start; i < s.length(); i++) {chars[i] = '9';}return Integer.parseInt(String.valueOf(chars));}
}
968.监控二叉树 (跳过)
题目链接:
这篇关于代码随想录算法训练营第三十七天 738.单调递增的数字 、 968.监控二叉树 (跳过)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!