738.单调递增的数字
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
解题思路:一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]--,然后strNum[i]给为9,这样这个整数就是89,即小于98的最大的单调递增整数。举个例子,数字:332,从前向后遍历的话,那么就把变成了329,此时2又小于了第一位的3了,真正的结果应该是299。
java:
class Solution {
public int monotoneIncreasingDigits(int n) {
String s = String.valueOf(n);
char[] chars = s.toCharArray();
int start = s.length();
for (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.监控二叉树
题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
java:
class Solution {
int res=0;
public int minCameraCover(TreeNode root) {
if(minCame(root)==0){
res++;
}
return res;
}
public int minCame(TreeNode root){
if(root==null){
return 2;
}
int left=minCame(root.left);
int right=minCame(root.right);
if(left==2&&right==2){
return 0;
}else if(left==0||right==0){
res++;
return 1;
}else{
return 2;
}
}
} 猜你喜欢
网友评论
- 搜索
- 最新文章
- 热门文章
