[leetcode刷题]面试经典150题之2移除元素(简单)

server/2024/9/23 22:13:24/

题目 

移除元素

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

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

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

思路分析:

  1. 双指针法:使用两个指针,一个指针 i 遍历整个数组,另一个指针 j 用于记录不等于 val 的元素的位置。每当我们遇到不等于 val 的元素时,将其放到 j 指针的位置,并将 j 向前移动,最终 j 的值就是不等于 val 的元素数量。
  2. 原地修改:因为我们不需要额外的空间,只需要在原数组上进行操作。

步骤:

  • 定义一个 j 指针,初始化为 0,用于保存不等于 val 的元素。
  • 遍历数组 nums,如果当前元素不等于 val,就将它放到 nums[j],并移动 j 指针。
  • 遍历完成后,j 就是数组中不等于 val 的元素个数。

代码

class Solution:def removeElement(self, nums: List[int], val: int) -> int:c=0for i in range(len(nums)):if nums[i]!=val:nums[c]=nums[i]c+=1return c


http://www.ppmy.cn/server/121010.html

相关文章

SpringBoot开发——集成Tess4j实现OCR图像文字识别

文章目录 1、准备工作2、配置Tess4j3、编写OCR服务4、创建控制器5、测试集成6、处理多语言与自定义字体7、总结 随着数字化转型的推进,光学字符识别( OCR, Optical Character Recognition)技术在各种应用场景中变得愈发重要。 OCR技术可以…

Redis——C++库redisplusplus在Linux环境下的安装

目录 第一步,安装hiredis第二步,下载redis源码第三步,编译/安装 redis-plus-plus使用redis-plus-plus(以Centos为例)Ubuntu的Makefile 第一步,安装hiredis redis-plus-plus 是基于 hiredis 实现的,而hiredis 是⼀个 C…

【编程基础知识】Mysql的各个索引数据结构及其适用场景

一、引言 在数据库的世界中,索引是提升查询速度的超级英雄。就像图书馔的目录帮助我们快速找到书籍一样,MySQL中的索引加速了数据检索的过程。本文将带你深入了解MySQL索引的多种数据结构、它们的适用场景以及如何巧妙地使用它们来优化性能。 二、索引…

《SmartX ELF 虚拟化核心功能集》发布,详解 80+ 功能特性和 6 例金融实践

《SmartX ELF 虚拟化核心功能集》电子书现已发布!本书详细介绍了 SmartX ELF 虚拟化及云平台核心功能,包含虚机服务、容器服务、网络服务、存储服务、运维管理、工具服务、数据保护等各个方面。 即刻下载电子书,了解如何利用基于 SmartX ELF …

如何确保Redis双删的准确性

为了保证Redis双删一致性的准确性,可以采取以下几种策略: 延时双删策略:在更新数据时,先删除缓存,再更新数据库,然后等待一段时间(例如几百毫秒到几秒),再次删除缓存。这…

一文入门生成式AI(理解ChatGPT的原理)

一、什么是生成式AI? 以ChatGPT为代表的生成式AI,是对已有的数据和知识进行向量化的归纳,总结出数据的联合概率。从而在生成内容时,根据用户需求,结合关联字词的概率,生成新的内容。 可以这么联想&#x…

独立游戏《Project:Survival》UE5C++开发日志0——游戏介绍

该游戏是《星尘异变》团队的下一款作品,太空科幻题材的生存游戏,我将负责使用C、蓝图实现游戏的基础框架和核心功能,其中还包含使用人工智能算法助力游戏开发或帮助玩家运营 目前已有功能: 1.3D库存系统:所有库存中的物…

C++在Linux实现多线程和多进程的TCP服务器和客户端通信

多进程版本 服务器 #include <arpa/inet.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <sys/wait.h> #include <signal.h> #include <string&…