原因是在将 a数组赋值给a1、a2时采用了 for(int i=0;i<=limit;i+=2) 的写法(简写为lim)。当 i 取 lim 时,会访问 a1[lim>>1],而 a1 的长度为 lim/2 ,是从 a1[0] 到 a1[lim/2 - 1],因此出现问题。 考虑 i<len 的正确性:由于处理时使得 lim > N+M ,故不需要对 a[lim] 进行更改
for(int i=0;i<=limit;i+=2)
i
lim
a1[lim>>1]
a1
lim/2
a1[0]
a1[lim/2 - 1]
i<len
lim > N+M
a[lim]
亲测改 <= 为 = 可过,记录: WA AC
<=
=