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]