class Solution {
public int monotoneIncreasingDigits(int n) {
//int转化char
String s = String.valueOf(n);
char[] ch = s.toCharArray();
int start = s.length();
for(int i = s.length() - 2 ; i>=0 ;i--){
if(ch[i] > ch[i+1]){
start = i+1;
ch[i]--;
}
}
for(int i = start ; i < s.length() ;i ++){
ch[i] = '9';
}
return Integer.parseInt(String.valueOf(ch));
}
}
class Solution {
static int res;
public int minCameraCover(TreeNode root) {
res = 0;
if(minCameraCover1(root) == 0){
res++;
}
return res;
}
public static int minCameraCover1(TreeNode root){
if(root == null){
return 1;
}
int left = minCameraCover1(root.left);
int right = minCameraCover1(root.right);
//左右无覆盖
if(left == 0 || right == 0){
res++;
return 2;
}
//左右有覆盖
if(left == 1 && right == 1){
return 0;
}
return 1;
}
}
class Solution {
public int fib(int n) {
if(n < 2) return n;
int a = 0;
int b = 1;
int sum = 0;
for(int i = 1 ; i < n ; i++){
sum = a+b;
a = b;
b = sum;
}
return sum;
}
}
class Solution {
public int climbStairs(int n) {
if(n <= 2) return n;
int a = 1;
int b = 2;
int c = 0 ;
for(int i = 3 ; i <= n ; i++){
c = a+b;
a = b;
b = c;
}
return c;
}
}