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%的用户。
  • 相关阅读:
    哲学的初步认识7
    随机法解决TSP问题
    哲学的初步认识6
    dfs+dp思想的结合------hdu1078
    动态规划3-------poj1050
    动态规划2-----hdu1069
    动态规划1-----------poj1080
    js中Math.round、parseInt、Math.floor和Math.ceil小数取整小结【转】
    美术馆
    无刷新评论
  • 原文地址:https://www.cnblogs.com/wangjm63/p/10858059.html
Copyright © 2011-2022 走看看