zoukankan      html  css  js  c++  java
  • Leetcode刷题记(9)——移除元素

    勤劳的搬运工!

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

    不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

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

    示例 1:

    给定 nums = [3,2,2,3], val = 3,
    
    函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。
    
    你不需要考虑数组中超出新长度后面的元素。
    
    解题思路:这道题和上道题简直是一模一样呀!唯一的区别就是这个不再是直接删除数组中重复的,而是要将数组中和指定数字相同的删除,但是还是完全可以利用上一题的思想!
         依旧直接使用快慢指针!!!我大概是脑子瓦特了,让快指针从后向前遍历,然后慢指针从前向后,可怕的是跑几个测试用例跑过了,以为没问题了,果然提交的时候失败了。
    看提交后的测试用例,自己手动跑码竟然跑了好几遍觉得没有错,后来才发现这样一来会把数组的原元素破坏掉啊,这样再用快指针遍历的时候前面的元素已经被替换了!!!
    真的是脑子瓦特了,然后本来一道可以直接用上一题代码的竟然花了好久,还好发现了这个错误,马上改过来了,最后提交竟然超过了100%的用户。
  • 相关阅读:
    发布镜像
    实战Tomcat镜像
    Docker File介绍
    数据卷容器
    DockerFile
    具名、匿名、指定路径挂载
    实战MySQL
    SHELL 常用技巧
    CentOS6和7启动流程
    解决服务器openssh漏洞
  • 原文地址:https://www.cnblogs.com/wangjm63/p/10858059.html
Copyright © 2011-2022 走看看