假设我们有一个数组来容纳一些数字。有非零值和零值。因此,我们必须在不更改其他数字相对顺序的情况下将所有零发送到右侧。因此,如果数组类似于[0、1、5、0、3、8、0、0、9],则最终数组将为[1、5、3、8、9、0、0、0、0 ]
为了解决这个问题,我们将遵循以下步骤-
假设索引= 0
对于i = 0到A的长度
A [index]:= A [i]
索引:=索引+ 1
如果A [i]!= 0,则
因为我= A的长度的索引
A [i] = 0
让我们看下面的实现以更好地理解-
class Solution(object): def moveZeroes(self, nums): """ :type nums: List[int] :rtype: None Do not return anything, modify nums in-place instead. """ insert_index = 0 for i in range(len(nums)): if nums[i] != 0: nums[insert_index]=nums[i] insert_index+=1 for i in range(insert_index,len(nums)): nums[i]=0 nums = [0,1,5,0,3,8,0,0,9] ob1 = Solution()ob1.moveZeroes(nums) print(nums)
nums = [0,1,5,0,3,8,0,0,9]
输出结果
[1,5,3,8,9,0,0,0,0]