前一位减一的话,后面的所有位可以取到9,要从后往前遍历,保证单调递增,后面变小了,前面也要变小
String.valueOf 转换为String类型,Integer 类的 valueOf 方法:将字符串或其他可以表示整数的数据转换为 Integer 对象。
class Solution {
public int monotoneIncreasingDigits(int n) {
String s=String.valueOf(n);
char[] digits=s.toCharArray();
for(int i=digits.length-1;i>0;i--){//从后往前遍历
if(digits[i]<digits[i-1]){
digits[i-1]--;
for(int j=i;j<digits.length;j++){//后面全为9
digits[j]='9';
}
}
}
return Integer.parseInt(new String(digits));
}
}
监控二叉树(四种情况,主要是根节点为0不容易想到
三种状态 0无覆盖 1有摄像头 2有覆盖,后序遍历从叶子结点开始。空结点设置成有覆盖的状态,最好让摄像头能监视上中下两层,隔一层放一个摄像机好点。
文章来源:https://www.toymoban.com/news/detail-858493.html
文章来源地址https://www.toymoban.com/news/detail-858493.html
class Solution {
int res=0;
public int minCameraCover(TreeNode root) {
if(root==null) return 0;
if(minCamera(root)==0) res++;//第四种情况,根结点为0
return res;
}
public int minCamera(TreeNode root){// 0是未覆盖 1是有摄像头 2是已覆盖
if(root==null) return 2;
int left=minCamera(root.left);
int right=minCamera(root.right);
if(left==2&&right==2){
return 0;
}else if(left==0||right==0){
res++;
return 1;
}else if(left==1||right==1){
return 2;
}
return 0;//不会到达的代码
}
}
到了这里,关于单调递增的数字+监控二叉树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!