我得到一个运行时错误为leetcode在数组问题中找到幸运整数,它在开发CPP中工作良好,但在leetcode中显示错误


class Solution {
public:
int findLucky(vector<int>& arr) {
sort(arr.begin(),arr.end());
int count=1;
int l=-1;
for(int i=0;i<arr.size();i++){
if(arr[i]==arr[i-1]){  
count=count+1;
}
if(arr[i]!=arr[i-1]){
count=1;
}
if(count==arr[i]){
l=arr[i];
}
if(count==arr[i]&& arr[i]>l){
l=arr[i];
}


}
return l;

}
};

运行时错误信息:第1034行:Char 34:运行时错误:添加无符号偏移量到0x602000000090溢出到0x60200000008c (stl_vector.h)UndefinedBehaviorSanitizer: undefine -behavior/usr/bin/……/lib/gcc/x86_64-linux-gnu/9/…/…/…/include/c++/9/bits/stl_vector.h:1043:34

首先这会导致UB

for(int i=0;i<arr.size();i++){
if(arr[i]==arr[i-1])

当i = 0时,表示访问arr[-1]

相关内容