最近做题,发现Leecode在出现数组的时候经常爆出AddressSanitizer: heap-buffer-overflow on address...错误
代码在codeblocks上时是不会报错的,经检查发现问题在这:
while(nums[i]==val&&i<nums.size())i++;
尤其是在下面条件下,出现的很频繁
必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成
估计是检测了如果访问了现有的外部就报错的情况,所以改成
while(nums[i]!=val){
i++;//找到第一个val
if(i==len)
break;
}