ZBLOG

#include #include #include using namespace std; const int N = 1e5 +10; int n; vector a; vector ans ; int main() { cin>>n; for(int i = 1;i

在你的代码中,存在一个问题。在使用 a 向量存储输入数据时,使用了 push_back() 函数向末尾添加元素。然而,在之后的排序过程中,你试图使用索引1到n来访问这些元素。

由于向量 a 的索引从0开始,默认情况下只有一个元素,所以无法正确访问索引1到n的范围。因此,在循环和排序前,请确保为 a 向量预分配足够的大小。

以下是修正后的代码:

#include <iostream> 
#include <vector>
#include <algorithm>
using namespace std;

const int N = 1e5 + 10;

int n; 
vector<vector<int>> a(N, vector<int>(2));
vector<vector<int>> ans; 

int main() 
{
    cin >> n; 
    
    for(int i = 0; i < n; i++) 
    {
        int x, y; 
        cin >> x >> y;
        a[i] = {x, y};
    }
    
    sort(a.begin(), a.begin() + n); 
    
    int st = -1e9 - 1, ed = 1e9 + 1;
    
    for(int i = 0; i < n; i++)
    { 
          if(ed < a[i][0]) 
          {
              if(st != -1e9 - 1) 
                  ans.push_back({st, ed}); 
              
              st = a[i][0];
              ed = a[i][1];
          } 
          else 
              ed = max(ed, a[i][1]);
    } 
    
    if(st != -1e9 - 1) 
        ans.push_back({st, ed});  
    
    cout << ans.size() << endl;
    
    return 0;
}

通过以上修改,你应该可以得到正确的结果。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=13293

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?