📅  最后修改于: 2023-12-03 15:21:55.567000             🧑  作者: Mango
在二进制数组中,我们需要在找到相邻左侧的0时删除其左侧所有的1。这个过程通过以下代码片段可以实现:
def remove_left_ones(binary_arr):
n = len(binary_arr)
i = 0
while i < n:
if binary_arr[i] == 0:
i += 1
continue
j = i - 1
while j >= 0 and binary_arr[j] == 1:
binary_arr[j] = 0
j -= 1
i += 1
return binary_arr
以上代码中,我们从左向右遍历了二进制数组,一旦我们找到了一个0,我们就开始向左扫描,将其左侧所有的1都删除掉,直到遇到了另外一个0。
这个程序的时间复杂度为 O(n),其中 n 是二进制数组的长度。因为我们只需要遍历一次数组,所以这个程序的空间复杂度是 O(1)。
希望这个代码片段对您有所帮助。