运行时错误:将无符号偏移量添加到0x602000000390溢出到0x60200000038c

问题描述

我正在解决一个名为的问题。在排序数组中查找元素的第一个和最后一个位置 '''

void bin_search(vector<int>&nums,int target,int l,int  h,int &a,int &b)
{
   if(l>h)
       return;

   int  mid= l + (h - l) / 2;

if(nums[mid]==target)
{
   
    if(nums[mid-1]==target)
    {
     
    bin_search(nums,target,l,mid-1,a,b);
    }
    else
    {
        a=mid;
    }

     if(nums[mid+1]==target)
    {
     
    bin_search(nums,mid+1,h,b);
    }
    else 
    {
        b=mid;
    }
   
}
else if(nums[mid]<target)
{
bin_search(nums,b);

}
else 
{
     bin_search(nums,b);
}
}

class Solution {
public:
    vector<int> searchRange(vector<int>& nums,int target) {
        
        int a=-1;
        int b=-1;
        int l=0;
        int h=nums.size()-1;
        bin_search(nums,b);
        
        return {a,b};
    }
};

''' 这是我提交的代码,但我正在 行1034:字符34:运行时错误:将无符号偏移添加到0x602000000390溢出到0x60200000038c(stl_vector.h) 摘要:UndefinedBehaviorSanitizer:未定义行为/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_vector.h :1043:34 错误,我能够通过我的编译器和其他ID中的所有测试用例,但无法解决错误 请提前帮助我

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)