上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

代码随想录算法训练营第三十七天| 738.单调递增的数字、968.监控二叉树

guduadmin281月前

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;
        }
    }
}

网友评论

搜索
最新文章
热门文章
热门标签
 
 周公解梦梦见被追杀是什么意思  做梦梦见两条蛇是什么征兆  梦见穿新裤子