Excerpt |
---|
Given an array nums and a value val, remove all instances of that value in-place and return the new length. |
...
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory. |
...
The order of elements can be changed. It doesn't matter what you leave beyond the new length. |
Example 1:
Code Block |
---|
Given nums = [3,2,2,3], val = 3, Your function should return length = 2, with the first two elements of nums being 2. It doesn't matter what you leave beyond the returned length. |
...
Code Block |
---|
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int cnt=0, pos=0, i=0;
while(i<nums.size()) {
if (nums[i]!=val) {
cnt++;
if (i!=pos) nums[pos]=nums[i];
pos++;
}
i++;
}
return cnt;
}
}; |
Solution in Java
Code Block |
---|
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; } |