leetcode上面代码测试通过,提交时出错?

leetcode上面代码测试通过,提交时出错?

class Solution:

def moveZeroes(self, nums: List[int]) -> None:

"""

Do not return anything, modify nums in-place instead.

"""

index = 0

for i in range(len(nums)):

if nums[i] == 0:

index += 1

else:

nums[i - index] = nums[i]

while index < len(nums) -1:

nums[index+1] = 0

index +=1

提交代码错误,但是 测试 没问题?在leetcode提交代码有什么规范或者特殊情况吗?


回答:

测试的时候是自己写的测试集,一般他提供一个,提交的时候是多个测试集,你提交的时候有通过那个测试集吗


回答:

因为你这个代码就是错误的呀。确定测试通过了吗?你试试[0,1]输出是啥,是[1,0]嘛?

java代码仅供参考:

public void moveZeroes(int[] nums) {

int index = 0;

int len = nums.length;

for (int i = 0; i < len; i++) {

if (nums[i] != 0) {

nums[index++] = nums[i];

}

}

for (; index < len; index++) {

nums[index] = 0;

}

}


回答:

代码有问题.
leetcode上的测试样例:
输入:[0,1]
正确输出:[1,0]
实际输出:[1,1]

python可尝试以下方法:
从前到后循环,碰到0就从改列表原位置删除,然后放到列表最后面。

class Solution(object):

def moveZeroes(self, nums):

"""

:type nums: List[int]

:rtype: void Do not return anything, modify nums in-place instead.

"""

for num in nums:

if num==0:

nums.remove(0)

nums.append(0)

以上是 leetcode上面代码测试通过,提交时出错? 的全部内容, 来源链接: utcz.com/a/157093.html

回到顶部