概述
一、利标准库提供的移除算法remove()
int removeElement(vector<int>& nums, int val) {
remove(nums.begin(), nums.end(), val);
return nums.size();
}
二、利用vector容器自带的删除函数erase()
int removeElement(vector<int>& nums, int val) {
auto it = nums.begin();
while (it != nums.end())
{
if (*it == val)
nums.erase(it);
else
it++;
}
return nums.size();
}
三、利用双指针,慢指针指向待删除元素,快指针后移找到其他元素,完成赋值,
int removeElement(vector<int>& nums, int val) {
int slowindex = 0;
for (int fastindex = 0; fastindex != nums.size(); ++fastindex)
{
if (val != nums[fastindex])
nums[slowindex++] = nums[fastindex]; //本次赋值完成后,慢指针自增
//指向下一个元素,如果快指针遍历到了val,不做处理,继续后移,找到非val元素,赋值到慢指针所指位置
}
return slowindex;
}
最后
以上就是沉默帆布鞋为你收集整理的LeeCode 27 移除元素,返回数组新长度的全部内容,希望文章能够帮你解决LeeCode 27 移除元素,返回数组新长度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复