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

双指针的初步了解

双引用的初步了解 10.14

微信图片_20251014192912

今天在力扣上刷题,第一次了解到了双引用的概念,如图

对于这个题,我一开始的思路是从0到size-1一步步遍历,如果找到值为val的,就删去,然后让计数器加1,最后输出计数器。但是不知道为什么总是报错

class Solution {
public:int removeElement(vector<int>& nums, int val) {int flag;int ret=0;for(int i=0;i<nums.size();++i){if(nums[i]==val){++ret;nums.erase(nums.begin()+i);}}int ans=nums.size()-ret;return ans;}
};

这是初始代码,我还没搞明白为什么会出错e

但是如果用双引用就比较简便

class Solution {public:int removeElement(vector<int>& nums, int val) {​    int a=0;    //设置两个指针,一个从头开始,一个始终指向末尾。​    int b=nums.size()-1;​    while(a<=b){if(nums[a]==val){​    int temp=nums[a];   //将首尾的值进行调换,并且让b-1,从而实现元素的删除​    nums[a]=nums[b];​    nums[b]=temp;​    --b; }else{++a;  //如果不是val,则+1继续遍历}​    }​    return b+1;  //由于b始终指向最后一个元素,而数组的下标从0开始,所以要+1}};
http://www.hskmm.com/?act=detail&tid=31108

相关文章:

  • 倍增并查集学习笔记
  • 两数相加-leetcode
  • CF2147E
  • 线程共享区域
  • ZR 2025 NOIP 二十连测 #1
  • 运行时数据区
  • work1
  • 2025 年液压机厂家推荐榜:伺服/小型/大型/数控/液压机厂家口碑推荐,品质可靠 聚焦智能适配,助力企业高效生产
  • 快速上手!山海鲸 4 种高频数据接入方式
  • AI赋能,重塑未来招聘:深度解析易路AI人岗匹配解决方案
  • 2025高级语言程序设计第一次作业lcr
  • luogu 个人主页
  • D230809E. 勇敢的阿乐
  • 解码Linux文件IO之标准IO
  • 10.14 CSP-S模拟31 改题记录
  • 高级程序语言第一次作业
  • 安装devc++过程的分享以及问题的记录
  • Linux之线程池 - 指南
  • zlog1
  • LlamaIndex检索调优实战:分块、HyDE、压缩等8个提效方法快速改善答案质量
  • 动火作业风险早预警!AI + 热成像技术筑牢防火安全线
  • 解题报告-P5664 [CSP-S2019] Emiya 家今天的饭
  • object类
  • Day 10
  • 2025 年生态格宾网厂家推荐榜:格宾网石笼/格宾网护坡/格宾网挡墙/格宾网网箱厂家推荐,聚焦工程安全与生态保护,助力基建项目高效落地
  • 时序博弈算法荣获时间检验奖
  • 背叛 仇恨 消极 如刀子刺穿了铁心 嘲笑 嗤之以鼻 漠然后只剩下孤寂
  • STM32主控芯片硬件设计总结
  • 亚马逊因暗黑模式订阅设计支付25亿美元和解金
  • P6645 [CCO 2020] Interval Collection