40 lines
1.0 KiB
C++
40 lines
1.0 KiB
C++
// Source : https://oj.leetcode.com/problems/remove-element/
|
|
// Author : Hao Chen
|
|
// Date : 2014-06-19
|
|
|
|
/**********************************************************************************
|
|
*
|
|
* Given an array and a value, remove all instances of that value in place and return the new length.
|
|
*
|
|
* The order of elements can be changed. It doesn't matter what you leave beyond the new length.
|
|
*
|
|
*
|
|
**********************************************************************************/
|
|
|
|
class Solution {
|
|
public:
|
|
int removeElement(vector<int>& nums, int val) {
|
|
int pos = 0;
|
|
for (int i=0; i<nums.size(); i++){
|
|
if (nums[i] != val){
|
|
nums[pos++] = nums[i];
|
|
}
|
|
}
|
|
return pos;
|
|
}
|
|
|
|
int removeElement(int A[], int n, int elem) {
|
|
int tail = n-1;
|
|
int i = 0;
|
|
while ( i<=tail ){
|
|
if (A[i]==elem){
|
|
A[i] = A[tail--];
|
|
continue;
|
|
}
|
|
i++;
|
|
}
|
|
|
|
return tail+1;
|
|
}
|
|
};
|