力扣题库第4题:移动零
题目内容:
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
(图片来源网络,侵删)
请注意 ,必须在不复制数组的情况下原地对数组进行操作。
示例 :
输入: 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]
(图片来源网络,侵删)
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...