创建一个方法 MoveZeros,遍历数组并计算数组中零的数量。根据计数大小使所有最终单元格为零。如果数组长度为 null 或为空,则不进行处理就返回。最终结果将在 nums 数组中。时间复杂度是O(N)因为我们遍历数组一次。
时间复杂度-O(N)
空间复杂度- O(1)
public class Arrays{ public void MoveZeros(int[] nums){ if (nums == null ||nums.Length== 0){ return; } int count = 0; for (int i = 0; i < nums.Count(); i++){ if (nums[i] != 0){ nums[count] = nums[i]; count++; } } for (int i = count; i < nums.Length; i++){ nums[i] = 0; } } } static void Main(string[] args){ int[] nums = { 0, 1, 0, 3, 12 }; s.MoveZeros(nums); foreach (var item in nums){ Console.WriteLine(item); } }输出结果
[1,3,12,0,0]