区间合并算法:判断区间是否可合并为一个闭区间并输出结果
{"title":"区间合并算法:判断区间是否可合并为一个闭区间并输出结果","description":"本文介绍了一种判断多个闭区间是否可以合并为一个闭区间的算法,并提供了C++代码实现。该算法使用排序和遍历的方法,可以高效地判断区间是否可以合并,并输出合并后的闭区间或"no"。","keywords":"区间合并,闭区间,算法,C++,代码实现,合并区间,排序,遍历","content":"#include "iostream"\n#include "vector"\n#include "algorithm"\n\nusing namespace std;\n\nbool canMergeIntervals(vector<pair<int, int>>& intervals) {\n sort(intervals.begin(), intervals.end());\n \n int n = intervals.size();\n int left = intervals[0].first;\n int right = intervals[0].second;\n \n for (int i = 1; i < n; i++) {\n if (intervals[i].first <= right) {\n right = max(right, intervals[i].second);\n } else {\n return false;\n }\n }\n \n cout << left << " " << right << endl;\n return true;\n}\n\nint main() {\n int n;\n cin >> n;\n \n vector<pair<int, int>> intervals(n);\n for (int i = 0; i < n; i++) {\n cin >> intervals[i].first >> intervals[i].second;\n }\n \n if (!canMergeIntervals(intervals)) {\n cout << "no" << endl;\n }\n \n return 0;\n}"}
原文地址: https://www.cveoy.top/t/topic/qtGv 著作权归作者所有。请勿转载和采集!