zoukankan      html  css  js  c++  java
  • LeetCode第二十七题-删除数组指定元素

    Remove Element

    问题简介:给定数组nums和值val,在适当位置删除该值的所有实例并返回新长度.

    不要为另一个数组分配额外的空间,必须通过使用O(1)额外内存修改输入数组来实现此目的.

    举例:

    1.给定数组 = [3,2,2,3], val = 3,

    返回值为2,代表有两个不等于val的值,此时数组前两个值应为[2,2]

    2:

    给定数组 = [0,1,2,2,3,0,4,2], val = 2,

    返回值为5,代表有五个不等于val的值,此时数组前两个值应为[0,1,3,0,4]

    解法一:设定两个变量,并遍历一遍数组,i表示结果索引即不等于val的个数,j表示遍历的当前索引,当nums[i]!=nums[j]时,i++并赋值nums[j]

    复杂度分析

    时间复杂度 : O(n)遍历一遍数组

    空间复杂度:O(1)定义空间为有限个

    解法二:

    遍历数组,当前索引值等于val时,将当前索引值与n-1交换,n表示数组长度,每当符合要求时n–1

    复杂度分析

    时间复杂度 : O(n)遍历一遍数组

    空间复杂度:O(1)定义空间为有限个

    小白刷题之路,请多指教— — 要么大器晚成,要么石沉大海

  • 相关阅读:
    QT资料大全
    网络协议及tcp协议详解
    QT和Java的跨平台
    QString转char *
    QT删除整个文件夹
    QT获取linux下的当前用户名
    std::map自定义类型key
    QT程序自启动
    linux下通过命令连接wifi
    Rsync实现文件的同步
  • 原文地址:https://www.cnblogs.com/lalalaczq/p/10801575.html
Copyright © 2011-2022 走看看