思路:使用双指针i、j,i为慢指针,j为快指针,判断nums[j]是否等于val,若相等,则继续加j,若不等,则令nums[i] = nums[j],直到j到达数组末尾。
// c++
class Solution {
public:
int removeElement(vector<int>& nums, int val)
{
int i, j;
i = 0;
for(j = 0; j < nums.size(); j++)
{
if(nums[j] != val)
{
nums[i] = nums[j];
i++;
}
}
return i ;
}
};
// c#
public class Solution {
public int RemoveElement(int[] nums, int val)
{
int i, j;
i = 0;
for(j = 0; j < nums.Length; j++) // Length首字母大写
{
if(nums[j] != val)
{
nums[i] = nums[j];
i++;
}
}
return i;
}
}