leetcode每日一题-27:移除元素
链接
移除元素
题目
分析
运用双指针解决即可,开始时同时l和r指针均指向第一个元素,l指针表示遍历元素,r表示实际应该填写的位置,每次当遍历的l对应位置值不等于要删除的值的时候,就赋值到r位置,同时r++,遍历结束后,r的值就是答案.
代码
C++
class Solution {
public:
int removeElement(vector<int>& nums, int val) {
int l = 0, r = 0;
while(l < nums.size())
{
if(nums[l] != val) nums[r++] = nums[l];
l++;
}
return r;
}
};
java
class Solution {
public int removeElement(int[] nums, int val) {
int n = nums.length;
int left = 0;
for (int right = 0; right < n; right++) {
if (nums[right] != val) {
nums[left] = nums[right];
left++;
}
}
return left;
}
}
作者:LeetCode-Solution