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

news2024/11/23 15:20:43

56. 合并区间

在这里插入图片描述

题目链接:56. 合并区间
文档讲解:代码随想录
状态:无语,这题从右边界排序做不了!

思路:

  1. 排序:按照区间的起始位置进行排序,这样后面处理时可以顺序合并重叠区间。
  2. 合并:从第一个区间开始,依次检查每个区间是否与前一个区间重叠。
    • 如果重叠,就更新前一个区间的结束位置为当前区间的结束位置的最大值。
    • 如果不重叠,就将前一个区间加入结果列表,并更新当前区间为新的待合并区间。
  3. 收尾:遍历完所有区间后,将最后一个待合并的区间加入结果列表。

题解:

    public int[][] merge(int[][] intervals) {
        if (intervals.length <= 1) {
            return intervals;
        }

        // 按照区间的起始位置进行升序排序
        Arrays.sort(intervals, (a, b) -> a[0] - b[0]);

        List<int[]> list = new ArrayList<>();
        int[] pre = intervals[0];

        for (int i = 1; i < intervals.length; i++) {
            int[] cur = intervals[i];

            // 如果当前区间的起始位置小于等于前一个区间的结束位置,合并区间
            if (cur[0] <= pre[1]) {
                pre[1] = Math.max(cur[1], pre[1]); // 更新合并后的结束位置
            } else {
                list.add(pre); // 将前一个合并后的区间加入结果列表
                pre = cur; // 更新为当前区间,准备合并下一个区间
            }
        }

        list.add(pre); // 添加最后一个合并后的区间

        // 将结果转换为二维数组并返回
        return list.toArray(new int[list.size()][]);
    }

738.单调递增的数字

在这里插入图片描述

题目链接:738.单调递增的数字
文档讲解:代码随想录
状态:做出来了,但是比较费力。。。

思路:通过从后向前遍历整数的每一位,检查是否需要调整前一位来保持递增性,然后将需要调整的位置后的所有位数设为 ‘9’,最终返回调整后的整数值。

题解:

    public int monotoneIncreasingDigits(int n) {
        char[] chars = String.valueOf(n).toCharArray(); // 将整数 n 转换为字符数组
        int index = chars.length; // 初始化索引为字符数组的长度
        for (int i = chars.length - 1; i > 0; i--) { // 从倒数第二位开始向前遍历字符数组
            if (chars[i - 1] > chars[i]) { // 如果前一位大于当前位
                chars[i - 1]--; // 将前一位减 1
                index = i; // 更新索引为当前位置
//                不能使用chars[i] = '9',如100,就会出现90,正确答案是99
            }
        }
        for (int i = index; i < chars.length; i++) { // 从索引位置开始向后遍历字符数组
            chars[i] = '9'; // 将后面的所有位数设为 9
        }
        String s = String.valueOf(chars); // 将字符数组转换为字符串
        return Integer.parseInt(s); // 将字符串转换为整数并返回
    }

968.监控二叉树

题目链接:968.监控二叉树
文档讲解:代码随想录
状态:留着二刷

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1862538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【zabbix】zabbix 自动发现与自动注册、proxy代理

1、配置zabbix自动发现&#xff0c;要求发现的主机不低于2台 zabbix 自动发现&#xff08;对于 agent2 是被动模式&#xff09; zabbix server 主动的去发现所有的客户端&#xff0c;然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多&#xff0c;zabbi…

YOLOv8改进 | 主干网络| 可变形卷积网络C2f_DCN【CVPR2017】

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a;《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40篇内容&#xff0c;内含各种Head检测头、损失函数Loss、B…

基于 ESP8266 和 MQ 气体传感器的微信告警系统设计与实现

接线: ESP8266MQ3vVCCGND GND A0 A0微信通知截图: 摘要:本文主要探讨了一种利用 ESP8266 微控制器与 MQ 气体传感器构建的气体检测微信告警系统。详细阐述了系统的硬件组成、软件设计以及与微信平台的交互机制。通过该系统,能够实时监测环境中的气…

vxe-表尾单元格进行合并后更改其表尾背景颜色

1.场景 在vxe-table的官网API中可以使用footer-cell-class-name给单元格添加背景颜色或者其他样式&#xff0c;但是本人场景进行了表尾合并的操作&#xff1b;参考API进行更改背景颜色失败&#xff1b; 2.解决 利用表尾css类名的区别&#xff0c;用子类选择器进行对应的选择设…

mulesoft --环境安装与搭建

1.mavenjdkpostman 2.anypoint statdio 下载安装 下载 Anypoint Studio & Mule |骡子软件 (mulesoft.com) 填好基本信息后&#xff0c;会发邮件&#xff0c;在邮件中下载&#xff0c;跳到官网下载 3注册账号 Download Anypoint Studio & Mule | MuleSoft 4.Connect…

StarRocks 存算分离成本优化最佳实践

序言 StarRocks 存算分离借助对象存储来实现计算和存储能力分离&#xff0c;而存算分离版本 StarRocks 一般来说有以下三方面成本&#xff1a; 计算成本&#xff0c;也即机器使用成本&#xff0c;尤其是运行在公有云上时存储成本&#xff0c;该部分与对象存储上存储的数据量相…

埃特巴什码加解密小程序

埃特巴什码加解密小程序 这几天在看CTF相关的课程&#xff0c;涉及到古典密码学和近代密码学还有现代密码学。 简单替换密码 Atbash Cipher 埃特巴什码(Atbash Cipher)其实可以视为下面要介绍的简单替换密码的特例&#xff0c;它使用字母表中的最后 一个字母代表第一个字母…

【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十七)

课程地址&#xff1a; 黑马程序员HarmonyOS4NEXT星河版入门到企业级实战教程&#xff0c;一套精通鸿蒙应用开发 &#xff08;本篇笔记对应课程第 27节&#xff09; P27《26.Stage模型-UIAbility的启动模式》 本节讲解 UIAbility的启动模式&#xff1a;Stage模型的应用&#x…

语言的数据结构:树与二叉树(二叉树篇)

语言的数据结构&#xff1a;树与二叉树&#xff08;二叉树篇&#xff09; 前言概念特别的二叉树满二叉树完全二叉树 存储结构顺序存储链式存储 查找方式 前言 上文说到了树&#xff0c;有人认为二叉树是树的每一个分支都有两个子节点。其实这也对。但二叉树在此基础上还做了限…

支持离线翻译任意语言的桌面应用程序;单张图像高效生成高质量的 3D 模型;2500种色彩映射的集合,适用于matplotlib和seaborn

✨ 1: Lingo Lingo是一款支持离线翻译任意语言的桌面应用程序 Lingo 是一款支持离线翻译的桌面应用程序&#xff0c;用户可以在不连接互联网的情况下进行多语言翻译。这款软件利用了Meta公司提供的nllb-200-distilled-600M 多语言模型&#xff0c;以实现高效的翻译功能。 没…

jupyter notebook的markdown语法不起作用

在这个界面编辑&#xff0c;发现markdown你编辑的是什么就是什么&#xff0c;不起作用&#xff0c;然而点一下&#xff1a; 右上角“Notebook转发”&#xff0c;就会单独跳出一个jupyter notebook的界面&#xff0c;此时就会奏效&#xff1a;

6.25作业

1.整理思维导图 2.终端输入两个数&#xff0c;判断两数是否相等&#xff0c;如果不相等&#xff0c;判断大小关系 #!/bin/bash read num1 read num2 if [ $num1 -eq $num2 ] then echo num1num2 elif [ $num1 -gt $num2 ] then echo "num1>num2" else echo &quo…

大学生搜题神器网站?分享七个支持答案和解析的工具 #职场发展#学习方法

在现代科技的帮助下&#xff0c;大学生们有幸能够利用各种日常学习工具来提升自己的学习效果。 1.全球翻译官 是一款在线翻译语言的服务平台&#xff0c;在app中&#xff0c;用户能够在线通过语音,拍照来翻译语言&#xff0c;非常的便捷&#xff0c;也支持文字翻译哦 全球翻…

SDA626 3A,4.5V-16V输入,500kHz同步降压型转换器

一般说明 该SDA626是一个完全集成&#xff0c;高效率的3A同步整流降压转换器。该SDA626工作在一个宽的输出电流负载范围高效率该设备提供两种工作模式&#xff0c;PWM控制和PFM模式切换控制&#xff0c;这使得在更广泛的负载范围内具有较高的效率。 SDA626需要最…

浦语·灵笔2 模型部署图片理解实战

效果图镇楼 1、使用 huggingface_hub 下载模型中的部分文件&#xff08;演示练习与模型实战无关&#xff09; 使用 Hugging Face 官方提供的 huggingface-cli 命令行工具。安装依赖: pip install -U huggingface_hub 然后新建 python 文件&#xff0c;填入以下代码&#xf…

Ubuntu20.04使用Samba

目录 一、Samba介绍 Samba 的主要功能 二、启动samba 三、主机操作 四、Ubuntu与windows系统中文件互联 五、修改samba路径 一、Samba介绍 Samba 是一个开源软件套件&#xff0c;用于在 Linux 和 Unix 系统上实现 SMB&#xff08;Server Message Block&#xff09;协议…

iptables(4)规则匹配条件(源、目、协议、接口、端口)

简介 前面我们已经介绍了iptables的基本原理,表、链,数据包处理流程。如何查询各种表的信息。还有基本的增、删、改、保存的基础操作。 经过前文介绍,我们已经能够熟练的管理规则了,但是我们只使用过一种匹配条件,就是将”源地址”作为匹配条件。那么这篇文章中,我们就来…

为什么小程序每次提交会有很多unpackage下的文件

解决办法.gitignore 文件 .DS_Store /unpackage# local env files .env.local .env.*.local# Log files npm-debug.log* yarn-debug.log* yarn-error.log*# Editor directories and files .idea .vscode *.suo *.ntvs* *.njsproj *.sln *.sw?

获取 S 参数仿真中属性所对应的值

获取 S 参数仿真中属性所对应的值 引言正文对 S41 参数进行获取方法一方法二方法三引言 应该有很多小伙伴有过困惑,在进行 S 参数扫描后,想要可视化一下对应参数的图像,每次手动点击一个是比较麻烦,另一个是显示的效果并不是很美观。此时,如果我们可以使用 Lumerical 脚本…

工作之建造者模式

刚刚开通了一个公众号&#xff0c;会分享一些技术博客和自己觉得比较好的项目&#xff0c;同时会更新一些自己使用的工具和图书资料&#xff0c;后面会整理一些面试资料进行分享&#xff0c;觉得有兴趣的可以关注一下。 项目场景&#xff1a; 工作中最近对接的第三方系统的AP…