热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

作文记录:合并区间的技巧与应用

本文详细记录了合并区间问题的解题技巧与应用场景。首先介绍了问题背景和题目描述,接着从排序最大值的角度探讨了解决思路,并提供了具体的程序代码及运行结果。此外,还探讨了其他可能的解决方案。最后,对整个解题过程进行了总结,为读者提供了全面的理解和参考。


作文以记之 ~ 合并区间

  • 0、前言
  • 1、题目描述
  • 2、解决思路
    • 2.1 排序 + 最大值
      • 2.1.1 思路
      • 2.1.2 程序代码
      • 2.1.3 运行结果
    • 2.2 其他方法
  • 3、总结


0、前言

本篇博客是一个题解,具体题目可 点击此处 进行查看!具体代码以及其他内容可 点击此处 进行查看!

这个题是一个中等难度,做起来挺快乐的,就是对我而言时间成本有点高,害!正文开始!


1、题目描述

有关题目描述就自己看图片吧
在这里插入图片描述


2、解决思路


2.1 排序 + 最大值


2.1.1 思路

简单说就是先将目标数组数据进行排序,再对排序后的数组设定两个初值,比如start、end,其中start是寻找满足要求的区间的左值,end是寻找满足要求的右值,通过与目标区间的左右值进行比较来确定start与end,即比如若end处于目标区间的范围内,则将该区间的右值赋给end,直至当end小于一个区间的左值,然后将其插入到指定数组中即可。具体可见于代码!


2.1.2 程序代码

#include
#include
using namespace std;
#includevoid shownums(vector<vector<int>>& nums)
{for (int i &#61; 0; i < nums.size(); i&#43;&#43;){int j &#61; 0;cout << "[";for (; j < nums[0].size()-1; j&#43;&#43;){cout << nums[i][j] << " ";}cout << nums[i][j] << "] ";}cout << endl;
}vector<vector<int>> merge(vector<vector<int>>& intervals)
{int n &#61; intervals.size();if (n <&#61; 1)return intervals;sort(intervals.begin(), intervals.end());vector<vector<int>> ans;int start &#61; intervals[0][0], end &#61; intervals[0][1];int i;for (i &#61; 1; i < intervals.size(); i&#43;&#43;){if (intervals[i][0] > end){ans.push_back({ start, end });start &#61; intervals[i][0], end &#61; intervals[i][1];}else if (intervals[i][1] >&#61; end){end &#61; intervals[i][1];}}if (i &#61;&#61; n)ans.push_back({ start, end });return ans;
}void test()
{/*vector> nums &#61; { { 1, 3 }, { 2, 4 }, { 3, 6 }, {7,8} };*/vector<vector<int>> nums &#61; { { 0, 3 }, { 0, 1 }, { 0, 2 }, { 1, 9 }, { 2, 5 }, { 10, 11 }, { 12, 20 }, { 19, 20 } };cout << "原数组&#xff1a;";shownums(nums); cout << endl;cout << "处理后&#xff1a;";shownums(merge(nums)); cout << endl;
}int main()
{test();system("pause");return 0;
}

2.1.3 运行结果

在这里插入图片描述


2.2 其他方法

若后续有时间或者有想法&#xff0c;则补充其他方法&#xff01;


3、总结

本次这个题难度还行&#xff0c;只不过我浪费了好些时间&#xff0c;但最终还是解决了它&#xff0c;希望后面遇到同类型的题能有更快更好的解决思路或方法&#xff01;


推荐阅读
  • 本文介绍如何使用线段树解决洛谷 P1531 我讨厌它问题,重点在于单点更新和区间查询最大值。 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 题目解析给定 n 个人和 n 种书籍,每个人都有一个包含自己喜好的书籍列表。目标是计算出满足以下条件的分配方案数量:1. 每个人都必须获得他们喜欢的书籍;2. 每本书只能分配给一个人。通过使用深度优先搜索算法,可以系统地探索所有可能的分配组合,确保每个分配方案都符合上述条件。该方法能够有效地处理这类组合优化问题,找到所有可行的解。 ... [详细]
  • 在C++程序中,文档A的每一行包含一个结构体数据,其中某些字段可能包含不同数量的数字。需要将这些结构体数据逐行读取并存储到向量中,随后不仅在控制台上显示,还要输出到新创建的文档B中。希望得到指导,感谢! ... [详细]
  • 2018 HDU 多校联合第五场 G题:Glad You Game(线段树优化解法)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356在《Glad You Game》中,Steve 面临一个复杂的区间操作问题。该题可以通过线段树进行高效优化。具体来说,线段树能够快速处理区间更新和查询操作,从而大大提高了算法的效率。本文详细介绍了线段树的构建和维护方法,并给出了具体的代码实现,帮助读者更好地理解和应用这一数据结构。 ... [详细]
  • 在探讨P1923问题时,我们发现手写的快速排序在最后两个测试用例中出现了超时现象,这在意料之中,因为该题目实际上要求的是时间复杂度为O(n)的算法。进一步研究题解后,发现有选手使用STL中的`nth_element`函数成功通过了所有测试点。本文将详细分析这一现象,并提出相应的优化策略。 ... [详细]
  • 在洛谷 P1344 的坏牛奶追踪问题中,第一问要求计算最小割,而第二问则需要找到割边数量最少的最小割。通过为每条边附加一个单位权值,可以在求解最小割时优先选择边数较少的方案,从而同时解决两个问题。这种策略不仅简化了问题的求解过程,还确保了结果的最优性。 ... [详细]
  • Halcon之图像梯度、图像边缘、USM锐化
    图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像卷积:1.模糊2.梯度3.边缘4.锐化1.视频教程:B站、 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许你参数化不同的请求、队列请求或者记录请求日志。本文将详细介绍命令模式的基本概念、组件及其在实际场景中的应用。 ... [详细]
  • 本文探讨了基础二分法在数据报告生成中的应用及其优化策略。通过分析二分法在处理大规模数据集时的高效性和准确性,提出了若干改进措施,以提升数据报告的生成速度和质量。具体包括算法的并行化处理、数据预处理技术的应用以及异常值的处理方法,旨在为数据分析师提供更为高效和可靠的工具。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 深入理解排序算法:集合 1(编程语言中的高效排序工具) ... [详细]
author-avatar
梅花七
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有