栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【无标题】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】

学习目标:

C++算法学习之双指针法


学习内容: 双指针法 学习时间:

2022.6.2


简介:

利用双指针法移除数组内的元素

方法:

通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。 功能同调用Vector中的erase函数
快指针用于寻找新数组要的元素,即去除所要删除的元素后,新数组保留的元素
慢指针用于更新新数组的下标值

代码:
// 时间复杂度:O(n)
// 空间复杂度:O(1)
class Solution{
public:
    int removeElement(vector& nums, int val) {
        int slowIndex = 0; 
        for (int fastIndex = 0; fastIndex < nums.size(); fastIndex++) {  
            if (val != nums[fastIndex]) { 
                nums[slowIndex++] = nums[fastIndex]; 
            }
        }
        return slowIndex;
    }
};

力扣其他题目:
26.删除排序数组中的重复项
283.移动零
844.比较含退格的字符串(未做)
977.有序数组的平方

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号