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%的用户。
  • 相关阅读:
    匹配下拉控件
    验证视图状态 MAC 失败
    打开网页要输入用户名和密码的解决方案!
    ASP.NET网站安装部署参考总结!
    IOS开发中常量的处理
    typedef与define的区别
    OC的单例模式
    js for循环中传入动态参数
    javascript array map方法
    javascript 得到兄弟节点的方法,jquery妙用
  • 原文地址:https://www.cnblogs.com/wangjm63/p/10858059.html
Copyright © 2011-2022 走看看