力扣题库第4题:移动零

03-08 1547阅读 0评论
题目内容:

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

力扣题库第4题:移动零 第1张
(图片来源网络,侵删)

请注意 ,必须在不复制数组的情况下原地对数组进行操作

示例 :

输入: nums = [0,1,0,3,12]

输出: [1,3,12,0,0]

答案:
# coding:utf-8
# 时间:2024/3/7 21:42
# Pythonit教程网(blog.pythonit.cn)
# Python全栈视频课件获取:www.dqu.cc
# 加速高防cdn:woaiyundun.cn
def move_zeroes(nums):
    # 初始化一个指针指向非零元素的下一个位置
    write_index = 0
    # 遍历数组
    for read_index in range(len(nums)):
        # 如果当前元素不是0
        if nums[read_index] != 0:
            # 将当前元素放到write_index的位置
            nums[write_index] = nums[read_index]
            # 将write_index向前移动一位
            write_index += 1
            # 遍历结束后,write_index之后的位置都应该是0
    # 因为我们只需要保证非零元素在write_index之前,所以直接在后面填充0即可
    for i in range(write_index, len(nums)):
        nums[i] = 0
nums = [0, 1, 0, 3, 12]
move_zeroes(nums)
print(nums)  # 输出应该是 [1, 3, 12, 0, 0]
力扣题库第4题:移动零 第2张
(图片来源网络,侵删)

免责声明
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明。
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所
提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何
损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在
转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并白负版权等法律责任。

手机扫描二维码访问

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,1547人围观)

还没有评论,来说两句吧...

目录[+]