Tạo một phương thức MoveZeros, duyệt qua mảng và đếm số lượng Zeros trong mảng. Dựa trên kích thước đếm làm cho tất cả các ô cuối cùng bằng không. Trả về mà không cần xử lý nếu độ dài mảng là null hoặc rỗng. Kết quả cuối cùng sẽ ở trong nums Array. Độ phức tạp về thời gian là O (N) vì chúng ta đang duyệt qua mảng một lần.
Độ phức tạp về thời gian - O (N)
Độ phức tạp của không gian - O (1)
Ví dụ
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); } }
Đầu ra
[1,3,12,0,0]