首页 > 编程语言 >【算法】【线性表】移除元素

【算法】【线性表】移除元素

时间:2023-12-20 21:58:25浏览次数:41  
标签:线性表 val nums int 元素 算法 数组 移除 长度

1  题目

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

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

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

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。
例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

示例 2:

输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,3,0,4]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为[0,1,3,0,4]
注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

提示:

  • 0 <= nums.length <= 100
  • 0 <= nums[i] <= 50
  • 0 <= val <= 100

2  解答

class Solution {
    public int removeElement(int[] nums, int val) {
        // 1、当数组为空或者长度为0时,返回0
        if (nums == null || nums.length == 0) {
            return 0;
        }
        // 2、双指针  index 保存要留下的元素下标。i 用于遍历
        int index = 0;
        for (int i=0; i<nums.length; i++) {
            int num = nums[i];
            // 相等的话,略过
            if (num == val) continue;
            // 不相等就往 index 下存 并++
            nums[index] = num;
            index++;
        }
        return index++;
    }
}

加油

标签:线性表,val,nums,int,元素,算法,数组,移除,长度
From: https://www.cnblogs.com/kukuxjx/p/17917668.html

相关文章

  • 机器学习-线性分类-支持向量机SVM-SMO算法-14
    目录1.SVM算法总结2.SMO算法1.SVM算法总结选择核函数以及对应的超参数为什么要选择核函数?升维将线性问题不可分问题升维后转化成线性可分的问题核函数有那些?lineagausspolinormailtanh选择惩罚项系数Cmin||w||2+Csum(ei)构造优化问题:利用SMO......
  • 算法分析-动态规划-求解0-1背包问题
    一.题目需求 使用一个体积大小为13的背包,选择一件或多件商品带走,使得所选商品总价值最大。商品列表如下: 二.算法思想1,这是一个经典的0-1背包问题它要求我们在一组物品中选择一些,每个物品只能选择一次或者不选择,目标是使得所选物品的总价值最大。这个问题在实际生活中有很......
  • 【算法】决策树算法:ID3
    importmathfromcollectionsimportCounter#创建数据集defcreate_dataset():dataset=[#年龄,工作,房子,信用,标签['青年',0,0,'一般','0'],['青年',0,0,'好','0'],[�......
  • 安防升级!羚通视频智能分析平台助力安全帽、反光衣算法识别,让安全无处不在!
    在现代社会中,公共安全和个体防护已经成为了我们日常生活的重要组成部分。特别是在一些高风险的工作环境中,如建筑工地、交通警察等,安全帽和反光衣的使用是保障工作人员安全的重要手段。然而,传统的人工监控方式往往无法做到实时、准确的监控和识别,这就为羚通视频智能分析平台的出现......
  • 【算法】K-means 算法学习
    fromnumpyimport*importpandasaspdimportmatplotlib.pyplotasplt#计算两点之间的欧式距离defdist(a,b):returnsqrt(sum((a-b)**2))#生成聚类中心defcreate_center(data,k,defaultPts=[0,3,6]):#固定的几个点作为聚类中心ifdefaultP......
  • 羚通视频智能分析平台视频监控算法分析玩手机打电话检测
    在当今数字化时代,视频监控技术已经广泛应用于我们生活的各个领域。然而,传统的视频监控方式往往需要大量的人力进行监控和分析,这不仅效率低下,而且容易出错。为了解决这个问题,羚通公司推出了一款全新的视频智能分析平台,该平台利用先进的视频监控算法,可以实时检测并分析手机打电话的......
  • 《算法、C++、Linux、Android》
    ......
  • 羚通视频智能分析平台视频监控算法分析玩手机打电话检测
    在当今数字化时代,视频监控技术已经广泛应用于我们生活的各个领域。然而,传统的视频监控方式往往需要大量的人力进行监控和分析,这不仅效率低下,而且容易出错。为了解决这个问题,羚通公司推出了一款全新的视频智能分析平台,该平台利用先进的视频监控算法,可以实时检测并分析手机打电话的行......
  • python 数据结构与算法知识图
    1.算法思想:递归、分治(归并排序、二分查找、快速排序)、贪心(贪心策略排序+当前最优)、动态规划(最优子结构+递推式)、回溯(解空间:排列树+子集树、深度搜索+剪枝)、分支限界(解空间:排列树+子集树、广度搜索+剪枝))2.排序算法:(low:冒泡、插入、选择;mid:快排、归并、堆排(完全二叉树),其他:桶排序、基......
  • 2023最新初级难度算法面试题,包含答案。刷题必备!记录一下。
    好记性不如烂笔头内容来自面试宝典-初级难度算法面试题合集问:什么是排序?说出常见的排序算法有哪几种?排序是计算机科学中的一种基本操作,它将一组数据按照某种顺序进行排列。排序算法是实现排序过程的具体方法。常见的排序算法有多种,它们可以根据不同的数据结构、时间复杂......