ZBLOG

#include #include #include using namespace std; typedef long long LL; const int N = 1e5+10; int n; LL len; LL L[N],s[N]; vector q; bool check(int mid) { for(int i = 1;i

在给定的代码中,存在以下问题:

  1. check 函数中,每次调用时未清空 q 向量。应该在每次循环前将其清空,否则会导致上一次的结果影响到下一次的计算。可以在 check 函数开头加入 q.clear()

  2. sort(q.begin(), q.end()) 语句之前没有定义比较函数。由于二维向量内部是一个数组,需要自定义比较函数来指定排序的依据。可以添加如下的比较函数:

   bool compare(const vector<int>& a, const vector<int>& b) {
       if (a[0] != b[0])
           return a[0] < b[0];
       return a[1] < b[1];
   }

然后,在 sort(q.begin(), q.end()) 处修改为 sort(q.begin(), q.end(), compare)

  1. 对于变量 sted 的初始值设置不准确。应该将它们初始化为最小值和最大值而不是 -1。可以使用如下方式进行初始化:
   int st = INT_MAX, ed = INT_MIN;

以上是对代码中明显存在问题的部分进行修正和补充说明,希望能帮助你解决问题。如果还有其他问题,请随时提问。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?