python给定一个数组,将所有非零元素向右移动,将最后一个元素变为0的代码
时间: 2024-05-03 09:21:00 浏览: 71
python 移动零,给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序
5星 · 资源好评率100%
以下是将所有非零元素向右移动,将最后一个元素变为0的Python代码:
```python
def move_zeros(nums):
# 找到最后一个非零元素的位置
last_non_zero_idx = 0
for i in range(len(nums)):
if nums[i] != 0:
last_non_zero_idx = i
# 将所有非零元素向右移动
for i in range(last_non_zero_idx):
if nums[i] == 0:
nums[i], nums[last_non_zero_idx] = nums[last_non_zero_idx], nums[i]
last_non_zero_idx -= 1
# 将最后一个元素变为0
nums[-1] = 0
# 测试代码
nums = [1, 0, 2, 0, 3]
move_zeros(nums)
print(nums)
# 输出:[1, 2, 3, 0, 0]
```
首先遍历数组找到最后一个非零元素的位置,然后从数组的起始位置开始遍历,如果当前元素是0,则将它和最后一个非零元素交换位置,并将最后一个非零元素的位置向前移动一位。这样就可以将所有非零元素向右移动,最后将最后一个元素变为0即可。
阅读全文