首页 > 其他分享 >代码随想录:移除元素

代码随想录:移除元素

时间:2024-11-13 21:56:27浏览次数:1  
标签:vector int 代码 随想录 erase vec 移除

代码随想录:移除元素

题目中的原地指的是不能开创新的数组。

简单双指针解决问题,实际上是vector中的erase的实现原理

//erase和迭代器的使用方法
std::vector<int> vec = {1, 2, 3, 4, 5};
auto it = vec.begin() + 2; // 指向元素 3
//这所谓迭代器其实就是封装后的指针啊
vec.erase(it); // 删除元素 3

代码写的有点铸币,可以一个循环搞定的,复杂度一样懒得改了

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int k=0;
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]==val){
                nums[i]=-1;
                k++;
            }
        }
        int target = 0;
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]!=-1){
                nums[target]=nums[i];
                target++;
            }
        }
        return nums.size()-k;
    }
};

标签:vector,int,代码,随想录,erase,vec,移除
From: https://www.cnblogs.com/huigugu/p/18544927

相关文章

  • Java 项目注入、上传、搜索及插件挖掘的代码审计
    目录Java项目注入、上传、搜索及插件挖掘的代码审计一、什么是Java项目注入、上传、搜索及插件挖掘的代码审计二、原理(一)注入原理(二)文件上传原理(三)搜索功能安全原理(四)插件安全原理三、步骤与代码示例(一)准备工作(二)注入攻击审计步骤与代码示例(三)文件上传审计步骤与......
  • 代码审计:TP5 框架及无框架变量覆盖与反序列化
    目录代码审计:TP5框架及无框架变量覆盖与反序列化一、什么是TP5框架及无框架变量覆盖与反序列化审计二、原理(一)变量覆盖原理(二)变量覆盖与文件包含漏洞结合原理(三)反序列化原理(文中虽未详细提及,但为完整理解可补充)三、步骤与代码示例(一)准备工作(二)审计步骤与代码分析......
  • CICD05 Jenkins流水线, 代码质量检查sonarqube ubuntu使用
    3.2.3.5Pipeline简单案例#范例:脚本式node{stage('Getcode'){echo'获取代码'//gitclone}stage('Build'){echo'构建项目代码'}stage('Test'){echo'......
  • Python——专栏:跳动的心跳(橘粉爱心)——完整代码
    运行展示完整代码importrandomfrommathimportsin,cos,pi,logfromtkinterimport*CANVAS_WIDTH=980#画布的宽CANVAS_HEIGHT=720#画布的高CANVAS_CENTER_X=CANVAS_WIDTH/2#画布中心的X轴坐标CANVAS_CENTER_Y=CANVAS_HEIGHT/2#画布中......
  • 二分查找(折半查找)函数与非函数写法代码介绍及其优缺点 C语言
    什么是二分查找?二分查找也叫折半查找 在有序的数组中查找目标的方法需要借助中间元素与目标值的比较来逐步缩小范围一直到找到目标元素或者不存在为止查找的步骤↓1确定左右端点的下标值(注:数组下标从0开始)2计算中间下标位置3比较中间下标位置的数组值与目标值的大......
  • 客户端与服务器之间双向通讯的5种方式总结(完整代码演示)
    客户端与服务器之间双向通讯的5种方式总结(完整代码演示)  目录1.polling轮循2.long-polling长轮循3.iframe流4.EventSource流5.websocket 首先简单说一下常用的http协议的特点:http是客户端/服务器模式中请求-响应所用的协议,在这种模式中,客户端(一般......
  • 鸿蒙高质量代码静态检测200条四
    @cross-device-app-dev/font-size字体大小要求至少为8fp以便于阅读@cross-device-app-dev/grid-columns-span不推荐开发者将栅格中所有的GridCol子组件只设置span属性,且值与父组件的columns属性相等@cross-device-app-dev/grid-span-value在栅格布局组件GridCol中......
  • 【自动驾驶-感知】CenterNet与CenterFusion融合目标检测的目标检测模型实战代码-基于P
    【自动驾驶-感知】CenterNet与CenterFusion融合目标检测的目标检测模型实战代码一.CenterNet目标检测模型1.中心点热力图2.物体尺寸回归3.分类任务4.损失函数二、融合目标检测CenterFusion算法原理三.实现案例与代码数据集与实验环境数据预处理与增强模型定义......
  • CRUXEval: 代码推理、理解和执行的评估方法
    CRUXEval(CodeReasoning,Understanding,andeXecutionEvaluation)是一个在HumanEval上进行改进的benchmark。由800个Pythonfunction组成。paper:CRUXEval:ABenchmarkforCodeReasoning,UnderstandingandExecutionGitHub:cruxeval评估过程每个函数都带有一......
  • 《MyBatis-Plus 代码生成器基础入门》
    1.概念介绍MyBatis-Plus是一个MyBatis的增强工具,旨在简化开发、提高效率。它在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus提供了代码生成器功能,可以快速地根据数据库表结构生成Entity(实体类)、Mapper(映射器接口)、Service(服务层接口及其实......