【编程题目 |200分】区间交集 【2021 H2, 2022 Q1, Q2 考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试”按钮进行代码提交。
■ 题目描述
【区间交集】
给定一组闭区间,其中部分区间存在交集。
任意两个给定区间的交集,称为公共区间(如:[1,2],[2,3]的公共区间为[2,2],[3,5],[3,6]的公共区间为[3,5])。
公共区间之间若存在交集,则需要合并(如:[1,3],[3,5]区间存在交集[3,3],需合并为[1,5])。
按升序排列输出合并后的区间列表。
输入描述
一组区间列表,区间数为 N: 0<=N<=1000;区间元素为 X: -10000<=X<=10000。
输出描述
升序排列的合并区间列表
备注:
1、区间元素均为数字,不考虑字母、符号等异常输入。
2、单个区间认定为无公共区间。
示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
[[0, 3], [1, 3], [3, 5], [3, 6]]
输出
[[1, 5]]
代码实现
C++解法一
#include <bits/stdc++.h> using namespace std; // 区间交集 vector<vector<int>> Intersection(vector<vector<int>> intervals)
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看C++解法二
#include<bits/stdc++.h> using namespace std;
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法一
package OD; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; public class Intersection { public static void main(String[] args) { Scanner in = new Scanner(System.in); String[] str = in.nextLine().split(" ");
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JAVA解法三
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) {
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看Python
import sys arr = [] for line in sys.stdin.readlines():
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看JavaScript
while (readline()) { let input = readline().split(" ").map(Number); let node = new qujian(input[0], input[1]); list.push(node); }
剩余50%内容,购买单篇文章或订阅会员后查看
此处内容需要权限查看
会员免费查看