एक विधि बनाएं MoveZeros, सरणी के माध्यम से पार करें और सरणी में शून्य की संख्या गिनें। गिनती के आकार के आधार पर सभी अंतिम कोशिकाओं को शून्य बना दें। यदि सरणी की लंबाई शून्य या खाली है, तो प्रसंस्करण के बिना वापस लौटें। अंतिम परिणाम अंक Array में होगा। समय जटिलता O(N) है क्योंकि हम एक बार सरणी से गुजर रहे हैं।
समय की जटिलता - ओ(एन)
अंतरिक्ष जटिलता -ओ(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]