力扣面试经典算法150题:移除元素

LeetCode面试经典150题 LeetCode面试经典150题喵 阅读详情

移除元素

今日的题目依旧是力扣面试经典算法150题中数组相关的题目:移除元素

题目链接:https://leetcode.cn/problems/remove-element/description/?envType=study-plan-v2&envId=top-interview-150

题目描述

给定一个排序数组 nums 和一个值 val,需要在原地移除数组中所有等于val 的元素,并返回移除后数组的新长度。不需要考虑超出新长度以外的元素。

  • 注意:
    • 必须在原地修改输入数组,不能使用额外的数组空间。
    • 元素的顺序可以改变,你不需要考虑数组中超出新长度后面的元素。
  • 示例:
    • 输入:
      nums = [3,2,2,3], val = 3
    • 输出:
      新长度为 2,数组变为 [2,2](注意:返回值为新长度,数组内容可以不是连续的)
  • 解释:
    • 数组 nums 中的值 3 被移除了两次。
    • 移除后的新数组长度为 2,数组内容为 [2,2]。

题目分析

题目要求我们在不使用额外空间的情况下,移除数组中的特定元素,并返回移除后的数组长度。

为了达到 O(1) 的额外空间复杂度,这要求我们需要在原地修改数组。

解题思路

题目的要求就两个,一个移出元素,一个将不同的元素放到原本的数组中。这就意味着我们需要在一个循环中进行两种操作,这里很容易就会想到用双指针来完成,一个指针拿出元素比较,一个指针将元素放入数组,并且这个指针最后停留的下标就是最后一个不同的元素。

实际算法代码

根据以上分析和思路,我们可以写出以下代码:

import java.util.Arrays;

/**
 * description
 *
 * @author 明月望秋思
 * @date 2024/8/6 
 */
public class RemoveElement {
   
   
    /**
     * 移除数组中的指定元素
     *
     * @param nums 输入数组
     * @param val  需要移除的值
     * @return 移除后的新数组长度
     */
   
LeRobot 入门教程(十六)Isaac Lab LeIsaac 叠衣服、夹橙子仿真环境 LeRobotEnvHub现已支持通过LeIsaac进行机器人模仿学习,提供摘橙子、搬立方体等日常任务仿真环境。用户可通过HuggingFace共享环境,使用一行代码加载任务,支持随机动作测试和远程操控。系统提供云端仿真方案,无需本地GPU即可运行。当前支持4种任务环境,通过make_env函数切换,其中折叠布料任务需先调用initialize()函数。该平台集成了数据采集、转换和训练全流程,为机器人学习提供便捷工具链。 阅读详情

相关推荐

低功耗和UPF介绍

参考[UPF]低功耗(Low Power Design)and UPF介紹

青春易逝,愿不负昭华,期待梦与远方 1万+

三角洲自动购买工具 —— 基于 OCR 的价格识别与自动点击

通过的方式,我们可以轻松实现自动化的“价格监控 + 自动点击”工具。它的优势在于通用性—— 只要能截屏识别价格,就能用于任何程序,不依赖特定 API。未来可以扩展的功能:自动保存配置到文件。支持多价格区域检测。增加快捷键启停功能。

qq_62975494的博客 2418

24V供电D1047/B817对管AB类音频功放设计与制作全解析

音频功率放大器是电子系统将微弱音频信号放大驱动扬声器的核心电路,其核心原理是通过晶体管或集成电路对信号进行电压和电流放大。从技术价值看,优秀的功放设计需兼顾效率、保真度与稳定性,AB类放大器便是经典折中方案,它在A类低失真与B类高效率间取得平衡。在应用场景上,这类电路广泛应用于家用音响、多媒体音箱、车载音频及DIY音频项目。本文聚焦于一个采用24V直流供电、以D1047和B817互补对管为核心输出级的AB类功放实例,深入剖析其**电路设计**与**元件选型**,涵盖从BC547小信号放大、偏置设置、PCB布

weixin_31355483的博客 414

信息学奥赛一本通高手训练1680:序列

题目 代码 #include<cstdio> #include<iostream> #include<cmath> #define LL long long using namespace std; const LL N = 1400000+7; const LL mod = 1e9+7; int n, t; LL pos[N], sum[N], ans[N]; struct node{ LL ll, rr; }a[N]; int main(){ p

qingfeixueyue的博客 468

h5支付不能打开支付宝 ios_iOS支付宝H5支付无法返回APP解决方案

本文前大段在讲楼主是如何解决这个问题的,以及中间遇到的麻烦。赶时间的同学可以直接看最后的 最终解决方案。在讨论之前,我们先看看官方文档上的一句话:注意:在iOS系统中,唤起支付宝App支付完成后,不会自动回到浏览器或商户APP。用户可手工切回到浏览器或商户APP;支付宝H5收银台会自动跳转回商户return_url指定的页面。what? 官方直接跟我们说GG了?楼主不甘心,还是想尝试一下。借鉴之前...

weixin_39864101的博客 854

安检机图像处理避坑指南:从条纹校正到物质分类,那些论文里没写的工程细节

本文深入探讨了双能X射线安检机图像处理中的关键工程实践,从条纹校正到物质分类,揭示了论文中未提及的实用技巧。针对探测器校正、物质分类模糊、伪彩色系统设计等核心问题,提供了动态参数更新、空间上下文分析和自适应色彩映射等解决方案,助力提升安检系统的准确性和鲁棒性。

weixin_30325487的博客 887

Conda换源全攻略:从清华源到默认源的保姆级切换教程(附常见问题解决)

本文提供Conda换源的完整教程,详细讲解如何从清华源切换到默认源,包括配置步骤、常见问题解决方案及高级技巧。针对国内开发者遇到的下载速度慢问题,清华源提供了高速稳定的解决方案,同时文章也介绍了恢复默认源的方法和多种镜像源选择。

weixin_28837817的博客 940

GTK4 入门到实战

本文介绍GTK4作为主流Linux GUI工具包的发展历程与核心特性,涵盖其从GIMP项目诞生的自由软件理念、版本演进及跨平台支持。重点解析GTK4的架构(GDK/GSK/GLib等)、GObject对象系统、信号-回调机制与事件驱动模型,并以C语言为例,结合开发环境搭建与官方示例(gtk4-demo)指导实践,最终通过图片查看器与多标签编辑器项目实现完整应用开发。

OneSea 1396

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: 力扣面试经典算法150题:合并两个有序数组
下一篇: 力扣面试经典算法150题:删除有序数组中的重复项
明月望秋思
博客等级 码龄6年 1931粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值