From 6ce7f407242ec1a720c730f8b58c9d444136ff21 Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Sun, 21 May 2023 22:17:32 -0400 Subject: [PATCH] Time: 0 ms (100.00%), Space: 5.8 MB (93.19%) - LeetHub --- 27-remove-element/27-remove-element.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 27-remove-element/27-remove-element.c diff --git a/27-remove-element/27-remove-element.c b/27-remove-element/27-remove-element.c new file mode 100644 index 0000000..6fcad79 --- /dev/null +++ b/27-remove-element/27-remove-element.c @@ -0,0 +1,21 @@ +int removeElement(int* nums, int numsSize, int val){ + if (numsSize == 0) { + return 0; + } + + int backIndex = numsSize - 1; + for (int i = 0; i < backIndex; ++i) { + if (nums[i] == val) { + while (nums[backIndex] == val) { + backIndex--; + if (backIndex == i) { + return nums[backIndex] == val ? backIndex : backIndex + 1; + } + } + nums[i] = nums[backIndex]; + nums[backIndex] = val; + backIndex--; + } + } + return nums[backIndex] == val ? backIndex : backIndex + 1; +} \ No newline at end of file