区间合并(c++,java)
区间合并(c++,java)
区间合并(c++,java)给定一个长度为 n的整数序列,请出最长的不包含重复的数的连续区间,输出它的长度。输入格式
第一行包含整数 n。第二行包含 n个整数(均在 0∼105范围内),表示整数序列。输出格式
共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围
1≤n≤105
输入样例:
5
1 2 2 5
输出样例:
提
区间合并(c++,java)
给定一个长度为 n的整数序列,请出最长的不包含重复的数的连续区间,输出它的长度。
输入格式 第一行包含整数 n。
第二行包含 n个整数(均在 0∼105范围内),表示整数序列。
输出格式 共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。
数据范围 1≤n≤105 输入样例: 5 1 2 2 5 输出样例:
提交代码
c++
代码语言:javascript代码运行次数:0运行复制#include<bits/stdc++.h>
using namespace std;
typedef pair<int, int> PII;
vector<PII> segs;
void merge(vector<PII> &s)
{
int st = -2e9, ed = -2e9;
vector<PII> res;
for (auto item:s)
{
if (ed < item.first)
{
res.push_back({st, ed});
st = item.first, ed = item.second;
}
else ed = max(ed, item.second);
}
segs = res;
}
int main()
{
int n;
cin >> n;
while(n --)
{
int l, r;
cin >> l >> r;
segs.push_back({l, r});
}
sort(segs.begin(), ());
merge(segs);
cout << segs.size() << endl;
return 0;
}
java
代码语言:javascript代码运行次数:0运行复制import java.util.*;
public class Main
{
static int = 100010;
static int [] a;
static ArrayList<int[]> list = new ArrayList<>();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = ();
for (int i = 0; i < n; ++ i)
{
a = new int [2];
a[0] = ();
a[1] = ();
list.add(a);
}
list.sort(new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] - o2[0];
}
});
int k = 0;
int r = Integer.MI_VALUE;
for (int a[]:list)
{
// 如果当前区间的左端点大于上一个区间的最右端
// 那么这个区间就是个独立的区间 不需要合并
if (a[0] > r) k ++;
r = (r, a[1]); // 更新右端点
}
println(k);
}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent 删除list数据javac++int #感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-19 10:59:18
推荐阅读
留言与评论(共有 18 条评论) |
本站网友 苹果代工厂 | 27分钟前 发表 |
int> PII; vector<PII> segs; void merge(vector<PII> &s) { int st = -2e9 | |
本站网友 iso17799 | 22分钟前 发表 |
ed}); st = item.first | |
本站网友 罗村租房 | 11分钟前 发表 |
输入格式 第一行包含整数 n | |
本站网友 厦门婚纱摄影团购 | 17分钟前 发表 |
数据范围 1≤n≤105 输入样例: 5 1 2 2 5 输出样例: 提交代码c++代码语言:javascript代码运行次数:0运行复制#include<bits/stdc++.h> using namespace std; typedef pair<int | |
本站网友 安妮的惩罚 | 3分钟前 发表 |
java)给定一个长度为 n的整数序列 | |
本站网友 在线浏览器 | 14分钟前 发表 |
java) 区间合并(c++ | |
本站网友 玲珑公园 | 6分钟前 发表 |
()); merge(segs); cout << segs.size() << endl; return 0; }java代码语言:javascript代码运行次数:0运行复制import java.util.*; public class Main { static int = 100010; static int [] a; static ArrayList<int[]> list = new ArrayList<>(); public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = (); for (int i = 0; i < n; ++ i) { a = new int [2]; a[0] = (); a[1] = (); list.add(a); } list.sort(new Comparator<int[]>() { @Override public int compare(int[] o1 | |
本站网友 facc | 4分钟前 发表 |
如有侵权请联系 cloudcommunity@tencent 删除前往查看list数据javac++int | |
本站网友 脑力宝丸 | 10分钟前 发表 |
int[] o2) { return o1[0] - o2[0]; } }); int k = 0; int r = Integer.MI_VALUE; for (int a[] | |
本站网友 挑逗性高潮 | 17分钟前 发表 |
ed}); st = item.first | |
本站网友 epub360 | 6分钟前 发表 |
java) 区间合并(c++ | |
本站网友 怎么调情 | 22分钟前 发表 |
s) { if (ed < item.first) { res.push_back({st | |
本站网友 分生孢子 | 16分钟前 发表 |
int[] o2) { return o1[0] - o2[0]; } }); int k = 0; int r = Integer.MI_VALUE; for (int a[] | |
本站网友 如何手动设置ip | 6分钟前 发表 |
item.second); } segs = res; } int main() { int n; cin >> n; while(n --) { int l | |
本站网友 河南民生学院 | 3分钟前 发表 |
ed = -2e9; vector<PII> res; for (auto item | |
本站网友 成都环球购物中心 | 7分钟前 发表 |
第二行包含 n个整数(均在 0∼105范围内) | |
本站网友 男友一个月深蹲后 | 18分钟前 发表 |
分享自作者个人站点/博客 |