解题思路:
(1)设置双指针,头指针指向当前位置,尾指针指向从尾部开始第一个不是val的位置
class Solution {
public:
void swap(int* a,int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int removeElement(vector<int>& nums, int val) {
int tial = nums.size()-1;
for(int i=0;i<nums.size();i++) {
if(tial<i) return tial+1;
else {
if(nums[i]==val) {
for(int j=tial;j>=i;j--) {
if(nums[i]!=nums[j]) {
swap(&nums[i],&nums[j]);
tial = j-1;
break;
} else tial--;
}
}
}
}
return tial+1;
}
};