码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Java】移除元素


    🎈练习题入口🎈

    🔒问题描述

    给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

    不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

    元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

     

     🔑解题分析

            本题需要原地删除跟 val 值相等的元素。如果我们按照 顺序表 的思想,遍历数组,找到符合条件的元素就删除,并且把后面的元素全部都往前提,遍历多次结束。

             如果按上述方法做的话,就浪费时间了!

            为了节省时间,我将采用双指针的形式来做这道题,如下图

    如果sign指向位置的元素不等于 val,那就把 sign 位置上的元素赋值给 record 位置上的元素,record++,sign++。

      因为前三个元素都不等于 val ,我们也可以看做他们什么也没干,直到 sign 指向位置元素等于val

     

             当 sign 指向位置元素等于 val 时,record 就保持不动,sign 继续前进直到所指向元素不满足条件,这时赋值的效果就显现出来了。之后两个指针向后移动,一直赋值就实现原地删除元素效果啦

     

     因为是先赋值然后 record++,所以最后 record 的值就等于数组的长度,所以我们可以直接返回record

    🔓代码实现

    1. class Solution {
    2. public int removeElement(int[] nums, int val) {
    3. int n = nums.length;
    4. int sign = 0;
    5. int record = 0;
    6. for(; sign < n;sign++){
    7. if(nums[sign]!=val){
    8. nums[record] = nums[sign];
    9. record++;
    10. }
    11. }
    12. return record;
    13. }
    14. }
  • 相关阅读:
    代码随想录训练营二刷第五十九天 | 647. 回文子串 516.最长回文子序列
    Android中Handler机制和原理是什么?
    viple入门(五)
    CAS:474922-22-0 Maleimide-PEG-DSPE 磷脂-聚乙二醇-马来酰亚胺简述
    排查线上问题的9种方式
    简述React 和 Vue 的 diff 时间复杂度从 O(n^3) 优化 到 O(n) ,那么 O(n^3) 和 O(n) 是如何计算出来的 ?
    蓝桥杯物联网竞赛_STM32L071_20_用printf将数据显示在OLED上
    交叉编译链的问题
    基于springboot+vue的信息技术知识赛系统
    php tp5微信小程序发送模板消息【复制皆可用】
  • 原文地址:https://blog.csdn.net/weixin_53564801/article/details/125499943
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号