给定一个数组,将所有非零元素向右移动,将最后一个元素变为0,python
时间: 2024-05-10 12:21:41 浏览: 105
python 移动零,给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序
5星 · 资源好评率100%
代码如下:
```python
def move_zeros(nums):
# 定义两个指针,一个指向当前非零元素应该存放的位置,一个指向当前遍历的位置
non_zero_index = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[non_zero_index] = nums[i]
non_zero_index += 1
# 将非零元素存放完毕后,将后面的元素全部变为0
for i in range(non_zero_index, len(nums)):
nums[i] = 0
return nums
# 测试
print(move_zeros([0,1,0,3,12])) # 输出 [1, 3, 12, 0, 0]
```
解释:
第一次遍历数组,将所有非零元素移动到数组的前面,同时记录当前非零元素应该存放的位置。第二次遍历将剩余的元素全部变为0。
阅读全文