设计算法将列表中所有非零元素移动到数组的前端

设计算法将列表中所有非零元素移动到数组的前端

答案
def move_non_zero_front(arr):
    slow = 0
    n = len(arr)
    for fast in range(n):
        if arr[fast] != 0:
            arr[slow] = arr[fast]
            slow += 1
    # slow之后全部填0
    for i in range(slow, n):
        arr[i] = 0
    return arr

#测试
a = [0,2,0,3,5,0,1]
print(move_non_zero_front(a))
#输出 [2, 3, 5, 1, 0, 0, 0]

题目信息

题号:8185
题型:简答题
知识点:Python
难度:普通