这里写目录标题
Leetcode738.单调递增的数字
题目链接:Leetcode738.单调递增的数字
一开始就想到了转成string来操作,我是天才懒狗
class Solution {
public:
int monotoneIncreasingDigits(int n) {
string num=to_string(n);
if(num.size()==1) return n;
int flag=num.size();
for(int i=num.size()-1;i>0;i--){
if(num[i-1]>num[i]){
num[i-1]--;
flag=i;//标记9开始的地方
}
}
for(int i=flag;i<num.size();i++){
//标记之后的全赋为9
num[i]='9';
}
return stoi(num);
}
};
Leetcode968.监控二叉树
题目链接:Leetcode968.监控二叉树
想到了标记树,但是没考虑清楚怎么标记,答案将traverse函数设置为 int 返回值,可以通过返回值衡量出不同的状态。
class Solution {
private:
int result;
//0-未覆盖,1-摄像头,2-覆盖
int traverse(TreeNode* root){
if(root==NULL) return 2;
int left=traverse(root->left);
int right=traverse(root->right);
if(left==0||right==0){
result++;
return 1;
}
if(left==1||right==1) return 2;
if(left==2&&right==2) return 0;
return -100000;
}
public:
int minCameraCover(TreeNode* root) {
result=0;
if(traverse(root)==0) result++;
return result;
}
};