《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(55)聚宝盆装区间 - 合并区间(排序贪心)

devtools/2025/3/17 22:52:19/

《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(55)聚宝盆装区间 - 合并区间(排序贪心)

哪吒在数据修仙界中继续他的修炼之旅。这一次,他来到了一片神秘的聚宝盆谷,谷中有一只巨大的聚宝盆,盆身闪烁着神秘的光芒。谷口有一块巨大的石碑,上面刻着一行文字:“欲装此盆,需以聚宝之力,合并区间,排序贪心显真身。”

哪吒定睛一看,石碑上还有一行小字:“区间[[1,3],[2,6],[8,10],[15,18]]合并后为[[1,6],[8,10],[15,18]]。”哪吒心中一动,他知道这是一道关于合并区间的难题,需要通过排序和贪心策略来解决。

暴力解法:聚宝盆的初次尝试

哪吒心想:“要合并区间,我可以逐个区间检查。”他催动聚宝盆之力,通过逐个区间比较,试图找到重叠或相邻的区间并合并。

vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<vector<int>> result;if (intervals.empty()) return result;sort(intervals.begin(), intervals.end());vector<int> current = intervals[0];for (int i = 1; i < intervals.size(); ++i) {if (intervals[i][0] <= current[1]) {current[1] = max(current[1], intervals[i][1]);} else {result.push_back(current);current = intervals[i];}}result.push_back(current);return result;
}

哪吒成功地合并了区间,但聚宝盆的光芒却黯淡了下来。他意识到,这种方法虽然可行,但效率低下,尤其是当区间数量很多时,灵力消耗巨大。

C++语法点

在C++中,合并区间问题涉及到排序和贪心策略。以下是一些重要特性:

  • 排序

    • 使用sort函数对区间按起始位置排序。
    • 常用操作:
      • sort(intervals.begin(), intervals.end()):按区间起始位置排序。
  • 贪心策略

    • 通过维护当前区间,逐步合并重叠或相邻的区间。

高阶优化:排序贪心的智慧

哪吒元神中突然浮现金色铭文——「聚宝盆装区间,排序贪心显真身」。他意识到,可以通过排序和贪心策略优化区间合并过程。

哪吒决定使用排序和贪心策略,先按区间起始位置排序,然后维护一个当前区间,逐步合并重叠或相邻的区间。通过这种方式,他成功地合并了所有区间,而且灵力消耗大幅减少。

vector<vector<int>> merge

http://www.ppmy.cn/devtools/167939.html

相关文章

在 CentOS 7 上安装 PHP 7.3

在 CentOS 7 上安装 PHP 7.3 可以按照以下步骤进行操作&#xff1a; 1. 安装必要的依赖和 EPEL 仓库 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;是为企业级 Linux 提供额外软件包的仓库&#xff0c;yum-utils 用于管理 yum 仓库。 sudo yum install -…

联想拯救者 M600 无线游戏鼠标|自定义驱动程序安装说明

安装步骤 下载后得到联想拯救者 M600 无线游戏鼠标自定义驱动程序“Setup_2.0.6.01271.exe”&#xff0c;右键 “ Setup_2.0.6.01271.exe ”&#xff0c;以管理员身份运行。 在安装向导窗口&#xff0c;点击“下一步” 在安装向导“许可协议”窗口&#xff0c;勾选“我接受协议…

大语言模型打卡学习DAY1

学习目标&#xff1a; 语言模型的发展历程 大模型的技术基础 学习内容&#xff1a; 1. 语言模型的发展历程 语言模型通常是指能够建模自然语言文本生成概率的模型&#xff0c;从语言建模到任务求解&#xff0c;这是科学思维的一次重要跃升。2. 大语言模型技术基础 定义&#…

让 Deepseek 写一个计算器(网页)

完整代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简单计算器</title><style&…

鸿蒙 @ohos.arkui.inspector (布局回调)

鸿蒙 ohos.arkui.inspector (布局回调) 在鸿蒙开发中&#xff0c;ohos.arkui.inspector 模块提供了一种强大的方式来监听组件的布局和绘制完成事件。这对于实现动态布局调整、自定义动画以及优化性能等场景非常有用。本文将详细介绍如何使用 ohos.arkui.inspector 模块实现布局…

凸优化算法学习笔记:决策单调性与 wqs二分

文章目录 前言决策单调性单调矩阵&#xff0c;完全单调矩阵&#xff0c;蒙日阵决策单调性优化 d p dp dp线性 d p dp dp分治&#xff08;离线&#xff09;二分队列&#xff08;在线&#xff09;SMAWK 区间 d p dp dp 练习题LOJ6039 w q s wqs wqs 二分&#xff08;蒙日阵最短…

Uniapp当中的scroll-view滚动条不出现或者触底刷新事件不触发

一、未正确设置容器高度 问题描述 scroll-view 未设置明确高度或高度值无效&#xff0c;导致无法形成有效滚动区域。 解决方案 • 使用行内样式直接设置 height&#xff08;如 style"height: 500rpx;"&#xff09;&#xff0c;避免类名样式被覆盖。 • 动态计算高度…

【每日学点HarmonyOS Next知识】页面引用问题、Json三方库、路由表使用、下拉刷新问题、视频播放错误

1、HarmonyOS 全屏的自定义组件被其他页面引用后导致其他页面按钮功能无法使用问题&#xff1f; 参考代码&#xff1a; //1.index.ets Entry Component struct First {State visible: Visibility Visibility.Nonebuild() {// 使用stack可以实现假的dialog覆盖原页面上面Stac…