当前位置: 首页 > article >正文

代码随想录算法训练营第三一天| 56. 合并区间 738.单调递增的数字 968.监控二叉树

今日任务

56. 合并区间  
738.单调递增的数字 
968.监控二叉树

56. 合并区间 

题目链接: . - 力扣(LeetCode)

class Solution {
    public int[][] merge(int[][] intervals) {
        Arrays.sort(intervals, (a,b)->a[0] - b[0]);
        if (intervals.length == 1) {
            return intervals;
        }

        int left = intervals[0][0];
        int right = intervals[0][1];
        List<int[]> res = new ArrayList<>();
        for (int i = 1; i < intervals.length; i++) {
            if (intervals[i][0] > right) {
                res.add(new int[]{left, right});
                left = intervals[i][0];
                right = intervals[i][1];
            } else {
                right = Math.max(right, intervals[i][1]);
            }
        }
        res.add(new int[]{left, right});
        int[][] result = new int[res.size()][2];
        for (int i = 0; i < res.size(); i++) {
            result[i] = res.get(i);
        }
        return result;
    }
}

738.单调递增的数字 

题目链接: . - 力扣(LeetCode)

class Solution {
    public int monotoneIncreasingDigits(int n) {
        String s = String.valueOf(n);
        char[] charArray = s.toCharArray();
        int start = charArray.length;
        for (int i = s.length() - 2; i >= 0; i--) {
            if (charArray[i] > charArray[i + 1]) {
                start = i + 1;
                charArray[i]--;
            }
        }
        for (int i = start; i < charArray.length; i++) {
            charArray[i] = '9';
        }
        return Integer.parseInt(String.valueOf(charArray));
    }
}


968.监控二叉树

题目链接: . - 力扣(LeetCode)

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    int res = 0;
    public int minCameraCover(TreeNode root) {
        if (minCamera(root) == 0) {res++;}
        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 {return 2;}
    }
}


http://www.kler.cn/a/313364.html

相关文章:

  • 申论1_概括、分析
  • 解决Anaconda出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url
  • Android中桌面小部件的开发流程及常见问题和解决方案
  • C#文字识别API场景解析、表格识别提取
  • 【算法】——二分查找合集
  • 94个属于一区且接受医工交叉领域投稿的期刊汇总|个人观点·24-11-13
  • C# 实时流转换为m3u8
  • docker 升级步骤
  • 从一个文本文件中挑选出符合条件的内容行
  • Java ----常用类
  • 算法课习题汇总(2)
  • java中SPI(服务提供者的接口)
  • 项目实训:CSS基本布局理解——WEB开发系列38
  • js中两种异步方式:async+await以及then
  • 梧桐数据库(WuTongDB):Volcano/Cascades 优化器框架简介
  • 毕业设计选题:基于ssm+vue+uniapp的捷邻小程序
  • Linux系统编程(基础指令)上
  • 《动手深度学习》线性回归简洁实现实例
  • 【Webpack--013】SourceMap源码映射设置
  • windows环境下配置MySQL主从启动失败 查看data文件夹中.err发现报错unknown variable ‘log‐bin=mysql‐bin‘
  • 使用vite+react+ts+Ant Design开发后台管理项目(二)
  • SpringBoot:关于Redis的配置失效(版本问题)
  • 6. Python 输出长方形,直角三角形,等腰三角形
  • 【Linux基础IO】深入Linux文件描述符与重定向:解锁高效IO操作的秘密
  • 解决“Windows系统中以管理员身份运行程序时无法访问映射的网络磁盘”的问题
  • C# WPF如何实现数据共享