我正在尝试编写以下程序
给定一组非重叠间隔,在间隔中插入新间隔(必要时合并)。
您可以假设间隔最初是根据其开始时间排序的。
示例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
}
答案 0 :(得分:4)
您是否从网站上复制了该代码?
我设法使用此代码段重现您的结果:
const char* msg =
"You can't copy this";
复制并置于coliru here后,您将获得相同的错误代码。
我在HTML代码中用于上述代码段的是:
<code>const char* msg = </code><code>"You can't copy this";
</code>
请注意我放在那里的
字符。
要解决这个问题,您可以使用像Notepad ++这样的不错的编辑器来使杂散字符可见: