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

代码随想录DAY31|56. 合并区间、738.单调递增的数字、968.监控二叉树

1. 合并区间

力扣

涉及重叠区间问题,首先仍然是将所有元素进行排序。用一个start和end记录当前重叠的区间,如果当前遍历到的元素左边界小于等于区间边界,则更新区间右边界end;如果没有交叉,则将当前区间记录到结果,同时更新start和end。注意全部遍历完之后要将最后一个start -> end区间加到结果里。
在这里插入图片描述

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

2. 单调递增的数字

力扣
本题涉及字符串、字符数组和整数的互相替换,要掌握相关的方法。

对于非递增的情况,如98,strNum[i - 1] > strNum[i],要将strNum[i - 1]–,strNum[i]和后面的部分都置为9。然后要考虑遍历的方向。如果从前向后遍历,会出现332变成329,前面变得非递增了,所以只能从后往前遍历。

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() - 1; i > 0; i--){
            if(chars[i - 1] > chars[i]){
                chars[i - 1]--;
                start = i;
            }
        }
        for(int i = start; i < chars.length; i++){
            chars[i] = '9';
        }
        return Integer.parseInt(String.valueOf(chars));
    }
}

3. 监控二叉树

二刷补上

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

相关文章:

  • springboot020基于Java的免税商品优选购物商城
  • Sam Altman 揭秘 OpenAI 未来蓝图:GPT-4.5、GPT-5 与模型规范重大更新
  • 鸿蒙app开发中 tab 切换的时候 里面的子组件如何在页面出现的时候 就请求数据
  • 2025年2月14日笔记 3
  • git如何下载指定版本
  • 二、交换机的vlan子设备接入
  • C语言进阶习题(4结构体)【1】通讯录的实现
  • 洛谷 acwing刷题 有关图的存储形式和djstra算法的例题
  • IDEA常用快捷键
  • 微信小程序的制作
  • 细读 React | React Router 路由切换原理
  • 深度卷积神经网络实战海洋动物图像识别
  • 数据科学之数据管理|python for Excel
  • React 什么时候会触发重新渲染?
  • 工业相机选型五要素
  • Java 大视界 -- 大数据伦理与法律:Java 技术在合规中的作用与挑战(87)
  • 前端框架React知识回顾
  • 一次使用十六进制溢出绕过 WAF实现XSS的经历
  • 【鸿蒙开发】第三十四章 DevEco Studio - 故障分析汇总
  • 三格电子——TCP转ProfibusDP网关使用场景
  • 【GO】Golang/C++混合编程 - 初识
  • 机器视觉--Halcon变量的创建与赋值
  • STM32 ADC介绍(硬件原理篇)
  • img标签的title和alt
  • EasyRTC轻量级SDK:智能硬件音视频通信资源的高效利用方案
  • 正成为现代城市发展的必然趋势的智慧交通开源了
  • Visual Studio Code的键盘快捷键
  • 「前端面试宝典」 - 猿媛之家(21.06)
  • 【第5章:深度生成模型— 5.3 生成模型在自然语言生成中的应用案例】
  • SQL语言(高软20)