当前位置: 首页 > news >正文

移除元素.

双指针法(快慢指针法)

通过快慢指针在一个for循环下完成两个for循环

快指针:寻找新数组的元素,新数组就是不含目标元素的数组。

慢指针:指向更新新数组下标的位置。

双指针在数组和列表操作中非常常见,很多考察数组、列表、字符串等操作的面试题,都会使用双指针。

class Solution{
public:
int removeElement(vector<int>&nums,int val){
        int slow=0;
        for(int fast=0;fast<nums.size();fast++)
        {
        if(val!=fast)
                {
                        nums[slow]=nums[fast];
                        slow++;
                }
        }
        return slow;
    }
};
class Solution{
public:
int removeElement(vector<int>&nums,int val){
    int left=0;
    int right=nums.size()-1;
    while(left<=right)
    {
        while(lfet<=right&&nums[left]!=val)
        ++left;
        while(lfet<=right&&nums[right]==val)
        --right;
        if(lfet<right)
            {
                nums[left]=nums[right];
                left++;
                right--;
            }
    }
    return left;
    }
}

会经常用到的函数:

swap(a,b):定义两个整型变量 a,b通过swap函数交换它们的值。

相关文章:

  • 【包管理器】主流包管理器_对比_应用场景
  • BitMap和RoaringBitmap:极致高效的大数据结构
  • 【数据结构】2.顺序表实现通讯录
  • leetcode每日一题:统计好整数的数目
  • 路由策略/策略路由之PBR
  • Hyprnote开源程序是一款记录和转录您会议的 AI 记事本。 本地优先且可扩展 。
  • 学习海康VisionMaster之平行线查找
  • 【PowerPoint专栏】PowerPoint的背景设置
  • 每天学一个 Linux 命令(13):touch
  • 图像预处理-插值方法
  • 效率工具- git rebase 全解
  • 实现定长的内存池
  • 【C++】 —— 笔试刷题day_14
  • org.apache.spark.SparkException: Kryo serialization failed: Buffer overflow...
  • Java---抽象类与接口
  • 【C++】继承
  • 【ROS2】行为树:BehaviorTree
  • Spring Boot对接马来西亚股票数据源API
  • 【前端】CSS Grid 布局详解
  • 【PySpark大数据分析概述】03 PySpark大数据分析
  • 网站建设优化/足球比赛今日最新推荐
  • 温州 网站建设/平台seo
  • 厦门网站制作公司找哪家/站长工具服务器查询
  • 校园招生网站建设的简报/百度seo简爱
  • 澄迈住房和城乡建设局网站/怎么百度推广
  • 徐州网站建设推广/2022年最火的关键词