From 64008089ff15d5ecbe048ddbb0e2e76d357839b8 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sat, 6 Jan 2024 22:28:10 +0100 Subject: [PATCH] =?UTF-8?q?cs:=20add=20=E2=80=9C283.=20Move=20Zeroes?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- cs/move-zeroes.cs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 cs/move-zeroes.cs diff --git a/cs/move-zeroes.cs b/cs/move-zeroes.cs new file mode 100644 index 0000000..1f43a34 --- /dev/null +++ b/cs/move-zeroes.cs @@ -0,0 +1,31 @@ +public class Solution { + public void MoveZeroes(int[] nums) { + var i = 0; + // find first zero + while (i < nums.Length && nums[i] != 0) { + ++i; + } + + for (var j = i + 1; j < nums.Length; ++j) { + // we do nothing for zeroes + if (nums[j] == 0) { + continue; + } + + // find first zero + while (i < nums.Length && nums[i] != 0) { + ++i; + } + + // no zero has been found + if (i >= nums.Length) { + break; + } + + // swap them while maintaining the order + nums[i] = nums[j]; + nums[j] = 0; + ++i; + } + } +}