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

数组_移除元素

数组_移除元素

  • 一、leetcode-27
  • 二、题解
    • 1.代码
    • 2.思考


一、leetcode-27

移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。

假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作:

  • 更改 nums 数组,使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。
  • 返回 k。

样例输入:nums = [3,2,2,3], val = 3

样例输出: 2, nums = [2,2,,]

解释:你的函数函数应该返回 k = 2, 并且 nums 中的前两个元素均为 2。
你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。


二、题解

1.代码

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

2.思考

使用快慢指针不需要每次都把后面所有的元素往前移,这样只要遍历一次
当快指针等于val,什么都不做直接后移fast
当快指针不等于val,把值赋给慢指针,快慢指针一起后移

相关文章:

  • MATLAB 生成脉冲序列 pulstran函数使用详解
  • 数据处理中多线程功能的设计逻辑,及python的多线程实现
  • C# 变量,字段和属性的区别
  • SQL-leetcode—1683. 无效的推文
  • Linux 安装 Ollama
  • 使用epoll与sqlite3进行注册登录
  • Spring Boot中使用Flyway进行数据库迁移
  • 云原生AI Agent应用安全防护方案最佳实践(下)
  • 安灯电子看板助力汽车零部件工厂实时监控与高效管理
  • 学习京东写测试用例
  • 上传解析 Excel 表(XLSX 文件)转为JSON数据
  • 【C/C++】位段
  • 【嵌入式】PCB电路板设计时,如何保证信号完整性?
  • LLaMA-Factory DeepSeek-R1 模型 微调基础教程
  • 基于javaweb的SpringBootoa办公自动化系统设计和实现(源码+文档+部署讲解)
  • 策略模式-小结
  • 硬盘检测利器CrystalDiskMark
  • SAP-ABAP:SAP屏幕数据的处理逻辑
  • Python 量化
  • 最新PHP盲盒商城系统源码 晒图+免签+短信验证+在线回收 ThinkPHP框架
  • 微官网建设/路由器优化大师
  • 潍坊建设工程信息网站/网络销售都是诈骗公司吗
  • 零食网站建设策划书模板/重庆seo团队
  • 网站制作真人游戏娱乐平台怎么做/丈哥seo博客
  • 头像代做网站/西地那非片能延时多久有副作用吗
  • 可以直接做ppt的网站/seo网站优化推广教程