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

news2024/11/24 0:18:47

今日任务

56. 合并区间

  • 题目链接: https://leetcode.cn/problems/merge-intervals/
  • 题目描述
    在这里插入图片描述

Code

class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        ranges::sort(intervals, [&](auto &a, auto &b)->bool{
            return a[0] < b[0];
        });
        int n = intervals.size();
        int start = intervals[0][0], end = intervals[0][1];
        vector<vector<int>> ans;
        for(int i = 1; i < n; i++){
            int a = intervals[i][0], b = intervals[i][1];
            if(a <= end){
                end = end < b ? b : end;
            }else{
                ans.push_back({start, end});
                start = a;
                end = b;
            }
        }
        ans.push_back({start, end});
        return ans;
    }
};

738.单调递增的数字

  • 题目链接: https://leetcode.cn/problems/monotone-increasing-digits/
  • 题目描述
    在这里插入图片描述

Code

class Solution {
public:
    int monotoneIncreasingDigits(int n) {
        auto str = to_string(n);
        int sz = str.size();
        // char pre = str[0];
        // int same = 1;
        // for(int i = 1; i < sz; i++){
        //     int idx = i - same + 1;
        //     same = str[i] == pre ? same + 1 : 1;
        //     if(str[i] < pre){
        //         str[idx - 1] -= 1;
        //         return stoi(str.substr(0, idx) + string(sz - idx, '9'));
        //     }
        //     pre = str[i];
        // }

        int end = sz - 1;
        char back = str[end];
        for(int i = sz - 2; i >= 0; i--){
            if(str[i] > back){
                end = i;
            }
            back = str[i];
        }
        if(end == sz - 1){
            return n;
        }
        int same = 1;
        for(int i = end; i >= 1; i--){
            if(str[i] == str[i - 1]){
                same++;
            }else{
                break;
            }
        }
        str[end + 1 - same] -= 1;
        return stoi(str.substr(0, end + 2 - same) + string(sz - end + same - 2, '9'));
    }
};

968.监控二叉树

  • 题目链接: https://leetcode.cn/problems/binary-tree-cameras/description/
  • 题目描述
    在这里插入图片描述

Code

class Solution {
public:
    int minCameraCover(TreeNode* root) {
        function<tuple<int, int, int>(TreeNode *)> dfs = 
            [&](TreeNode *node)->tuple<int, int, int>{
                if(node == nullptr){
                    return {INT_MAX / 2, 0, 0};
                }
                auto [l_choose, l_by_parent, l_by_children] = dfs(node->left);
                auto [r_choose, r_by_parent, r_by_children] = dfs(node->right);
                int choose = min(l_choose, l_by_parent) + min(r_choose, r_by_parent) + 1;
                int by_parent = min(l_choose, l_by_children) + min(r_choose, r_by_children);
                int by_children = min({l_choose + r_by_children, l_by_children + r_choose, l_choose + r_choose});
                return {choose, by_parent, by_children};
            };
        auto [choose, _, by_children] = dfs(root);
        return min(choose, by_children);
    }
};

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

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

相关文章

Spring:springboot集成jetcache循环依赖问题

springboot版本&#xff1a;2.6.14 jetcache版本&#xff1a;2.6.2 启动项目报错如下&#xff1a; 解决方案&#xff1a; jetcache版本升级到2.6.4 https://github.com/alibaba/jetcache/issues/624

IT运维岗适用的6本证书

作为IT从业人员&#xff0c;不断提升自身的专业技能和知识是提升职场竞争力、助力升职加薪的重要途径。特别是在运维领域&#xff0c;虽然工作看似简单&#xff0c;但实际上需要掌握的技术知识却相当全面。为了全面提升自己的技术能力&#xff0c;并证明自己的专业能力&#xf…

每周心赏|七夕这样玩也太超前了吧,速来AI一下!

明天就是七夕节了&#xff0c;是时候给七夕节来点大震撼了&#xff0c;AI带你玩点不一样的&#xff01; 给大家挖掘了几个有梗又有爱的智能体。信我&#xff0c;快来试玩&#xff01; 不知道大家是什么人&#xff1f;反正&#xff0c;我是一个很爱测评的人&#x1f92d;&#…

【GaussDB(DWS)】数仓部署架构与物理结构分析

数仓架构与物理结构分析 一、部署架构二、物理结构三、测试验证 一、部署架构 华为数据仓库服务DWS&#xff0c;集群版本8.1.3.x 集群拓扑结构&#xff1a; 上述拓扑结构为DWS单AZ高可靠部署架构&#xff0c;为减少硬件故障对系统可用性的影响&#xff0c;建议集群部署方案遵…

制造企业技术图纸不受控的影响与规避方法

在制造企业中&#xff0c;技术图纸是产品设计、制造与检验的核心依据。若技术图纸不受控&#xff0c;将对企业造成诸多不利影响。 首先&#xff0c;产品质量无法得到保障。不受控的图纸可能存在设计缺陷、尺寸误差或工艺不合理等问题&#xff0c;导致生产出的产品不合格&#…

独辟蹊径:用Python打造你的副业帝国,迈向财富自由

在当今这个数字化时代&#xff0c;掌握一门编程语言如同拥有了一把开启无限可能的钥匙。Python&#xff0c;以其简洁的语法、强大的库支持和广泛的应用领域&#xff0c;成为了许多人实现副业收入乃至财富自由的首选工具。本文将探讨如何利用Python技能开启副业&#xff0c;并逐…

mysql中的表查询操作

performance_schema 系统数据库用于收集Mysql服务器的性能参数&#xff0c;以便数据库管理员了解产生性能瓶颈的原因。information_schema 系统数据库定义了所有数据库对象的元数据信息。 表的常规操作&#xff08;增删改查&#xff09; 我们经常对表进行以下操作 插入&#x…

OceanMind海睿思受邀参加第41届CCF中国数据库学术会议

CCF 中国数据库学术会议始于1977年&#xff0c;是由数据库专业委员会举办的中国数据库领域的最高学术会议&#xff0c;第41届中国数据库学术会议&#xff08;NDBC 2024&#xff09;将于2024年8月7日-8月10日在新疆乌鲁木齐举行。中新赛克副总兼大数据产品线总经理卢云川先生受邀…

匹配格值的前半部分

Excel有多列含空格的源数据&#xff0c;如C3:D19&#xff1b;还有若干用于比较的数据项&#xff0c;由"-"隔为前后两部分&#xff0c;如F3:F7。 要求用源数据的每列与数据项的前半部分进行比较&#xff0c;将匹配上的数据项填在该列下面。 使用 SPL XLL spl("d…

DALL•E 3 重新定义图像生成的人工智能

在人工智能的不断发展中&#xff0c;图像生成技术一直是一个备受关注的领域。OpenAI 的 DALL-E 系列自发布以来&#xff0c;便因其卓越的图像生成能力而备受瞩目。作为这一系列的最新成员&#xff0c;DALL-E 3 再次突破了技术的界限&#xff0c;为图像生成带来了全新的可能性。…

嵌入式day23

实现minishell minishell功能&#xff1a; 1,cp 复制文件 cp 1 2 把文件1复制成文件2 2,cat 查看文件 cat 1 查看文件到内容 3,cd 切换路径 cd 1 切换到目录1中 4,ls 查看当前目录下到文件 ls 或 ls /home 5,ll 查看当前目录下到文件 ll 或 ll /home 6,ln -s 创建软链接…

《加密与解密 》第四版读书笔记2

1、注入技术 1.1注入技术的背景 在Windows操作系统中&#xff0c;各个进程的内存空间是相互独立的&#xff0c;虽然能通过函数VirtualQueryEx/VirtualProtectEx查询、设置目标进程的内存信息和页属性&#xff0c;通过函数ReadProcessMemory/WriteProcessMemory对目标进程的内存…

第八天 排行榜功能

排行榜分析&#xff1a; 榜单分为两类&#xff1a; 实时榜单&#xff1a;也就是本赛季的榜单 历史榜单&#xff1a;也就是历史赛季的榜单 之前一个积分记录明细表 要知道&#xff0c;每个用户都可能会有数十甚至上百条积分记录&#xff0c;当用户规模达到百万规模&#xff…

C#调用c++的dll方法,动态调用c++dll的方法

文章目录 一、创建c的dll1.新建项目2.删除vs自建的.cpp和.h文件3.新建Algorithm.h和Algorithm.cpp4.编译c1.编译2.解决报错3.再次编译可以看到已经成功。4.查看成功输出的dll。 二、创建c#项目1.创建一个console控制台程序。2.把dll拷贝到c#生成的程序根目录。3.在c#的program.…

WPF自定义控件的应用(DynamicResource的使用方法)

1 DynamicResource的使用方法 可以在字典文件 的抬头区写入数&#xff1a; <SolidColorBrush x:Key"PrimaryBackgroundColor" Color"#FFABAdB3"/><SolidColorBrush x:Key"TextBox.MouseOver.Border" Color"#FF7EB4EA"/>&l…

得-物任务脚本

得某物任务脚本 该脚本主要用于自动化执行“得物”APP中的一些日常任务和活动&#xff0c;包括签到、任务完成、奖励领取等操作。使用了多个第三方库来加密、签名和发送请求。 任务的定时执行 脚本通过定时任务&#xff08;cron&#xff09;设置在每天的11:10执行。使用的依…

通用人工智能的中国道路

朱松纯 北京大学智能学院院长 北京大学人工智能研究院院长 《为机器立心》、《为人文赋理》 1 什么是“人”——解构人文的认知架构与UV理论 从物体&#xff0c;到生命体、智能体、智人。。。 生命度&#xff08;Animacy&#xff09;&#xff1a;物体与智能体的边界&#xff0…

LLC数字控制TMS320F28034,4-DSP的epwm配置介绍

LLC数字控制TMS320F28034&#xff0c;4-DSP的epwm配置介绍 1 TMS320F280341.1 概述1.2 PWM详细介绍 2 TMS320F28034 PWM功能框图2.1 ePWM功能模块2.2 ePWM功能寄存器框图 3 TMS320F28034 PWM初始化流程4 结合项目设计5 代码设计5.1 PWM初始化程序5.2 工程代码 6 总结 配套代码示…

OpenCV图像滤波(9)getGaussianKernel()函数的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 功能描述 cv::getGaussianKernel() 是 OpenCV 中的一个函数&#xff0c;用于生成一维高斯核。这种核通常用于实现高斯模糊滤波器&#xff0c;该滤波器可以…

系统编程 day6 文件5

今天编写小程序实现minishell&#xff08;简易版文件操作命令函数编写以及实现&#xff09; 编写过程&#xff0c;以及部分代码展示 终端实现minishell部分功能展示