MoveZeros 메서드를 만들고 배열을 탐색하고 배열에 있는 0의 수를 계산합니다. 카운트 크기에 따라 모든 최종 셀을 0으로 만듭니다. 배열 길이가 null이거나 비어 있으면 처리하지 않고 반환합니다. 최종 결과는 nums Array에 있습니다. 배열을 한 번 순회하므로 시간 복잡도는 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]