def removeElement(nums, val):
i = 0
for j in range(len(nums)):
if nums[j] != val:
nums[i] = nums[j]
i += 1
return i
nums = [3, 2, 2, 3]
val = 3
print(removeElement(nums, val))
Explanation (Python):
In Python, we can use two pointers, i and j, to keep track of the current and next elements.
Initialize i to 0.
Iterate through the array with j ranging from 0 to the length of nums.
If nums[j] is different from the target value val, it means we have found a valid element to keep. Assign nums[j] to nums[i] and increment i.
Continue the iteration until j reaches the end of the array.
Finally, return i, which represents the new length of the array with the target element removed.
class Solution {
public int removeElement(int[] nums, int val) {
int i = 0;
for (int j = 0; j < nums.length; j++) {
if (nums[j] != val) {
nums[i] = nums[j];
i++;
}
}
return i;
}
public static void main(String[] args) {
int[] nums = {3, 2, 2, 3};
int val = 3;
Solution solution = new Solution();
System.out.println(solution.removeElement(nums, val));
}
}
Explanation (Java):
In Java, we also use two pointers, i and j, to track the current and next elements.
Initialize i to 0.
Iterate through the array with j ranging from 0 to the length of nums.
If nums[j] is different from the target value val, it means we have found a valid element to keep. Assign nums[j] to nums[i] and increment i.
Continue the iteration until j reaches the end of the array.
Finally, return i, which represents the new length of the array with the target element removed.
#include <iostream>
#include <vector>
using namespace std;
int removeElement(vector& nums, int val) {
int i = 0;
for (int j = 0; j < nums.size(); j++) {
if (nums[j] != val) {
nums[i] = nums[j];
i++;
}
}
return i;
}
int main() {
vector nums = {3, 2, 2, 3};
int val = 3;
cout << removeElement(nums, val) << endl;
return 0;
}
Explanation (C++):
In C++, we also use two pointers, i and j, to track the current and next elements.
Initialize i to 0.
Iterate through the vector with j ranging from 0 to the size of nums.
If nums[j] is different from the target value val, it means we have found a valid element to keep. Assign nums[j] to nums[i] and increment i.
Continue the iteration until j reaches the end of the vector.
Finally, return i, which represents the new length of the vector with the target element removed.
I hope this explanation helps! Let me know if you have any further questions.