设计算法将列表中所有非零元素移动到数组的前端
设计算法将列表中所有非零元素移动到数组的前端
答案
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]