【代码随想录算法训练营——Day31】贪心算法——56.合并区间、738.单调递增的数字、968.监控二叉树

LeetCode题目链接

https://leetcode.cn/problems/merge-intervals/

https://leetcode.cn/problems/monotone-increasing-digits/

https://leetcode.cn/problems/binary-tree-cameras/

题解

56.合并区间

自己写出来了,好棒。需要注意神奇的语句end = max(end, intervals[i][1]);

738.单调递增的数字

这题注意int和string类型转换的方法,转成数字9的做法。

968.监控二叉树

难题,下周目写。

代码

cpp 复制代码
//56.合并区间
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

class Solution {
private:
    static bool cmp(const vector<int> a, const vector<int> b) {
        if (a[0] == b[0]) return a[1] < b[1];
        return a[0] < b[0];
    }
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>>result;
        if (intervals.size() == 0) return result;
        sort(intervals.begin(), intervals.end(), cmp);
        int end = intervals[0][1], start = intervals[0][0];
        for (int i = 1;i < intervals.size();i++) {
            if (end < intervals[i][0]) {
                result.push_back({ start, end });
				start = intervals[i][0];
				end = intervals[i][1];
            }
            else {
                end = max(end, intervals[i][1]);
            }
        }
        result.push_back({ start, end });
        return result;
    }
};

int main() {
    vector<vector<int>> nums1 = { {1,3} ,{2,6},{8,10},{15,18} }, nums2 = { {1,4} ,{4,5} }, nums3 = { {4,7} ,{1,4} }, nums4 = { {1,4} ,{2,3} };
	Solution s;
    vector<vector<int>> result = s.merge(nums4);
    for (int i = 0;i < result.size();i++) {
        for (int j = 0;j < result[i].size();j++) {
            printf("%d ", result[i][j]);
        }
        printf("\n");
    }
    return 0;
}
cpp 复制代码
//738.单调递增的数字
相关推荐
DanyHope3 分钟前
LeetCode 206. 反转链表:迭代 + 递归双解法全解析
算法·leetcode·链表·递归·迭代
NAGNIP7 分钟前
才发现TensorBoard是个可视化的神器!
算法
_dindong13 分钟前
算法杂谈:回溯路线
数据结构·算法·动态规划·bfs·宽度优先
咋吃都不胖lyh13 分钟前
详解 UCB 算法的置信区间与核心逻辑(通俗 + 公式 + 实例)
人工智能·算法·机器学习
DanyHope21 分钟前
LeetCode 两数之和:从 O (n²) 到 O (n),空间换时间的经典实践
前端·javascript·算法·leetcode·职场和发展
free-elcmacom28 分钟前
机器学习高阶教程<6>推荐系统高阶修炼手册:混排、多任务与在线学习,解锁精准推荐新境界
人工智能·python·学习·算法·机器学习·机器人
断剑zou天涯28 分钟前
【算法笔记】AC自动机
java·笔记·算法
IT猿手32 分钟前
基于粒子群算法与动态窗口混合的无人机三维动态避障路径规划研究,MATLAB代码
算法·matlab·无人机·多目标优化算法·多目标算法
民乐团扒谱机33 分钟前
【微实验】仿AU音频编辑器开发实践:从零构建音频可视化工具
算法·c#·仿真·audio·fft·频谱
DanyHope35 分钟前
LeetCode 283. 移动零:双指针双解法(原地交换 + 覆盖补零)全解析
数据结构·算法·leetcode