+_+· 2023-10-14 14:24 采纳率: 70.8%
浏览 3
已结题

leetcode第56题合并区间越界


class Solution {
public:
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        sort(intervals.begin(), intervals.end());
        int i=0;
        vector<vector<int>> v;
        while(i<intervals.size()){
            int j=i+1;
            while(intervals[i][1]>=intervals[j][0]&&j<intervals.size()){
                if(intervals[i][1]>=intervals[j][1]){
                  j++;
                }
                else{
                  i=j;
                  j++;
                }
            }
            j-=1;
            v.push_back({intervals[i][0],intervals[j][1]});
            i=j+1;
        }
        return v;
    }
};

一直报越界 请问有没有人能帮忙看下

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-14 16:26
    关注

    【以下回答由 GPT 生成】

    这段代码在进行区间合并时可能会导致越界错误。具体原因是在第11行的循环条件中,先判断intervals[i][1]>=intervals[j][0],然后再判断j<intervals.size()。这样会导致在判断intervals[i][1]>=intervals[j][0]时,intervals[j][0]可能已经越界。因此,需要将条件判断的顺序调整一下,首先判断j<intervals.size(),再判断intervals[i][1]>=intervals[j][0]。这样可以确保不会越界。

    以下是修改后的代码:

    class Solution {
    public:
        vector<vector<int>> merge(vector<vector<int>>& intervals) {
            sort(intervals.begin(), intervals.end());
            int i=0;
            vector<vector<int>> v;
            while(i<intervals.size()){
                int j=i+1;
                while(j<intervals.size() && intervals[i][1]>=intervals[j][0]){
                    if(intervals[i][1]>=intervals[j][1]){
                        j++;
                    }
                    else{
                        i=j;
                        j++;
                    }
                }
                j--;
                v.push_back({intervals[i][0],intervals[j][1]});
                i=j+1;
            }
            return v;
        }
    };
    

    你可以尝试将这段代码运行起来,看看是否解决了越界错误。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 修改了问题 10月14日
  • 创建了问题 10月14日

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?