如何使用 C# 将给定整数数组中的所有零移动到数组末尾?

csharpserver side programmingprogramming更新于 2025/4/18 9:22:17

创建一个 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]

相关文章