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

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

56. 合并区间

代码随想录

56. 合并区间 - 力扣(LeetCode)

class Solution {
    public int[][] merge(int[][] intervals) {
        Arrays.sort(intervals,(a,b)->{
            if(a[0] == b[0])return a[1] - b[1];
            return a[0] - b[0];
        });
        List<int[]> result = new ArrayList<>();
        for(int i = 1;i < intervals.length;i++){
            
            if(intervals[i][0] > intervals[i - 1][1]){
                result.add(intervals[i - 1]);
            }
            else {
                intervals[i][0] = intervals[i - 1][0];
                intervals[i][1] = Math.max(intervals[i][1],intervals[i - 1][1]);
            }
        }
        result.add(intervals[intervals.length - 1]);
        return result.toArray(new int[0][]);
    }
}

738.单调递增的数字

738. 单调递增的数字 - 力扣(LeetCode)

代码随想录

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

968.监控二叉树 

968. 监控二叉树 - 力扣(LeetCode)

代码随想录

总结

class Solution {
    int result = 0;
    // 0无覆盖 1有摄像头 2有覆盖
    public int minCame(TreeNode root){
        if(root == null)return 2;//null设为有覆盖的情况
        int left = minCame(root.left);
        int right = minCame(root.right);
        if(left == 2 && right == 2)return 0;
        if(left == 0 || right == 0){//0 1的上面是1
            result++;
            return 1;
        }
        if(left == 1 || right == 1)return 2;
        return -1;
    }
    public int minCameraCover(TreeNode root) {
        if(minCame(root) == 0)result++;
        return result;
    }
}

http://www.dtcms.com/a/70342.html

相关文章:

  • 玩转python:通俗易懂掌握高级数据结构-collections模块之ChainMap
  • SpringMVC(四)Restful软件架构风格
  • 吴恩达机器学习笔记复盘(五)均方误差函数
  • 基恩士PLC编程小技巧八:脚本过长如何实现换行及替换
  • 并发编程2
  • 【java】网络编程——IP
  • Vue 中 this 使用指南与注意事项
  • 音视频入门基础:RTP专题(19)——FFmpeg源码中,获取RTP的音频信息的实现(下)
  • 约瑟夫环(1+2)
  • 【JVM】GC 常见问题
  • Python Cookbook-4.3 若列表中某元素存在则返回之
  • 机器学习之特征工程
  • 珠算与珠心算发展简介
  • c语言zixue
  • 并发编程面试题二
  • 从 root 一滴水看 Spring Data JPA 的汪洋大海
  • 前端面试笔试
  • 使用 Nginx 进行前端灰度发布的策略与实践
  • Day16:数组中出现次数超过一半的数字
  • harmonyOS NEXT开发与前端开发深度对比分析
  • C语言数据类型取值范围及格式化符号
  • NVMe集群:加速数据处理
  • 【C语言】自定义类型:结构体,联合,枚举(下)
  • python函数式编程
  • 【教程】继承中的访问控制 C++
  • C 语 言 --- 三 子 棋
  • 汽车保养记录用什么软件记录,汽车维修记录查询系统,佳易王汽车保养维护服务记录查询管理系统操作教程
  • 【免费】1949-2020年各省人均GDP数据
  • 2019年12月全国POI数据分享(同源历史POI分享系列)
  • Linux 蓝牙音频软件栈实现分析