鱼C论坛

 找回密码
 立即注册
查看: 1430|回复: 3

[已解决]移动0的问题

[复制链接]
发表于 2022-2-21 20:57:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 孜然爱爱 于 2022-2-21 21:28 编辑

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
当测试用例是[0,1,0,3,12],输出还是[0,1,0,3,12],实在搞不明白。

请问一下这个代码问题出在哪里了?
class Solution:
    def moveZeroes(self, nums: List[int]) -> None:
        i=0
        length=len(nums)
        while i < length:
            if nums[i] != [0]:
                i+=1
            else:
                del nums[i]
                nums.append(0)
                i+=1
最佳答案
2022-2-21 21:19:21
nums = [0, 1, 0, 3, 12]

# 方法 1
nums.sort(key = lambda x: not x)

# 方法 2
nums = [i for i in nums if i] + [i for i in nums if not i]

# 方法 3
def func(nums: list) -> list:
    for i in nums:
        if not i:
            nums.remove(i)
            nums.append(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-21 21:00:18 | 显示全部楼层
本帖最后由 isdkz 于 2022-2-21 21:09 编辑

你这代码怎么有两个else?

你这也没看到有输出的地方呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-21 21:19:21 | 显示全部楼层    本楼为最佳答案   
nums = [0, 1, 0, 3, 12]

# 方法 1
nums.sort(key = lambda x: not x)

# 方法 2
nums = [i for i in nums if i] + [i for i in nums if not i]

# 方法 3
def func(nums: list) -> list:
    for i in nums:
        if not i:
            nums.remove(i)
            nums.append(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-21 21:33:24 | 显示全部楼层
isdkz 发表于 2022-2-21 21:00
你这代码怎么有两个else?

你这也没看到有输出的地方呀

粘贴错了,才有两个else
题目要求不能有返回值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 06:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表