【发布时间】:2017-08-06 10:17:54
【问题描述】:
我正在尝试为以下程序编写代码
给定一组不重叠的区间,在区间中插入一个新区间(必要时合并)。
您可以假设间隔最初是根据它们的开始时间排序的。
示例 1:
给定区间 [1,3],[6,9] 插入和合并 [2,5] 将导致 [1,5],[6,9]。
示例 2:
给定 [1,2],[3,5],[6,7],[8,10],[12,16],插入和合并 [4,9] 将导致 [1,2] ,[3,10],[12,16]。
这是我程序的相关部分 这里。我想从向量中删除几个位置 然后我收到以下错误
error: stray '\177' in program
intervals.erase(intervals.begin()+(p+1),intervals.begin()+(q+1));
vector<Interval> Solution::insert(vector<Interval> &intervals, Interval newInterval) {
int n = intervals.size();
int p=-1,q=-1,a,b;
for(int i=0;i<n;++i){
if(intervals[i].start <= newInterval.start <= intervals[i+1].end)
p = i;
else if(intervals[i].end < newInterval.start < intervals[i+1].start)
a = i;
if(intervals[i].start <= newInterval.end <= intervals[i+1].end)
q = i;
else if(intervals[i].end < newInterval.end < intervals[i+1].start)
b = i;
}
int x,z;
if(p != -1 && q != -1)
x = q-p;
if(x > 0){
z=intervals[q].end;
intervals.erase(intervals.begin()+(p+1),intervals.begin()+(q+1));
intervals[p].end = z;
}
return vector
}
【问题讨论】:
-
您的程序代码中使用了错误字符。
-
我不知道,但是当我从程序中删除 p+1 和 q+1 时它会起作用
-
@user0042 不完全是。在那里,问题是正在编译的文件不应该被编译。在这里,问题在于文件包含不应该包含的内容。
-
这是一个保守的秘密,有经验的程序员如何解决他们起初不理解的错误:他们用谷歌搜索错误信息。真的。然后他们阅读了比第一个结果更多的内容。直到他们明白问题所在。这就像一个秘密的超级大国。