当前位置: 首页 > 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;
    }
}

相关文章:

  • 玩转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开发与前端开发深度对比分析
  • 《一鸣惊人》五一特别节目:以戏曲为桥梁,展现劳动者的坚守
  • 当农民跨进流动的世界|劳动者的书信①
  • 中国代表:美“对等关税”和歧视性补贴政策严重破坏世贸规则
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单
  • 事关广大农民利益,农村集体经济组织法5月1日起施行
  • 国泰海通合并后首份业绩报告出炉:一季度净利润增逾391%