力扣数组移动0问题出现的bug

运行时出现数组越界,这是怎么导致的?我的思路是指针遍历时遇到0就将其不断交换至数组最后

img

您好,当您的程序运行到 j = length-1 的时候,j+1就等于 length 了,而数组并没有开到 length,所以数组就越界了,希望对您有帮助。
修改方案:将 j < length 改为 j < length-1,将 i < length 也改为 i < length-1 。

nums【j+1】会超过nums一个元素

数组索引是从0开始的,所以访问末尾元素要使用ArrayName[length-1]的形式

num[j+1]当j=length-1时肯定越界崩溃啊!

索引是从0开始计数的,比如10位,索引依此是0,1,2,3,4,5,6,7,8,9
而不是1,2,3,4,5,6,7,8,9,10
所以取到10就越界了

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^