求助!以下两种暴力,只有第一种是正确的,但是第二种为什么会错误?
第一种:
int lst[maxn+5];
inline int bruteForce(int l, int r){
int ret=0;
rep(i, l, r) lst[a[i]]=-1;
rep(i, l, r){
if(!~lst[a[i]]) lst[a[i]]=i;
ret=max(ret, i-lst[a[i]]);
}
return ret;
}
第二种:
int lst[maxn+5];
inline int bruteForce(int l, int r){
int ret=0;
rep(i, l, r) lst[a[i]]=-1;
rep(i, l, r){
if(~lst[a[i]]) ret=max(ret, i-lst[a[i]]);
lst[a[i]]=i;
}
return ret;
}