如图,j的值为8,nums.size()也是8,可为什么接下来的if语句被跳过了,有大佬帮忙解释一下原因的吗
15行的while循环数组越界异常了,因为最后j=8时,nums[j]=nums[8],因为nums的数组长度为8,下标最大取到7,所以此时出现数组越界异常。
解决:
15行改为while(j<nums.size()&&nums[j]== val)
如有帮助,望点击我回答右上角【采纳】支持一下。
下标应该是从0到size()-1,所以j不可能等于nums.size();应该改为j+1==nums.size()