如何使用 C# 將給定的整數陣列中所有的零移動到陣列的末尾?


建立 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]

更新於: 2021-08-17

612 次瀏覽

開啟你的 職業生涯

完成本課程後即可獲得認證

開始
廣告
© . All rights reserved.