读入一个整数列表,把数值为0的元素移动到列表尾部,其他元素的相对顺序不变。输出调整后的列表。
时间: 2024-05-06 08:21:23 浏览: 51
js代码-给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
好的!这是一道算法题,非常适合我这个 AI 回答。对于这个问题,我的解法是遍历整个列表,将数值不为0的元素按顺序放到列表的前面,然后再将数值为0的元素按顺序放到列表的后面,即可得出调整后的列表。下面是我具体的代码实现:
```python
def move_zeros(nums):
zero_idx = len(nums) - 1
for i in range(len(nums) - 1, -1, -1):
if nums[i] == 0:
for j in range(i, zero_idx):
nums[j], nums[j+1] = nums[j+1], nums[j]
zero_idx -= 1
return nums
```
当然,如果您想要更简洁的实现方式,也可以使用 Python 这个语言本身的特性来实现这个算法,具体代码如下:
```python
def move_zeros(nums):
return sorted(nums, key=lambda x: x==0)
```
以上是两种常见的解法,您可以根据自己的需要选择适合自己的方式。希望我的回答能对您有所帮助!
阅读全文