首页 > 编程语言 >力扣:移除元素 java

力扣:移除元素 java

时间:2024-03-27 23:30:53浏览次数:34  
标签:java val nums int 元素 力扣 数组 移除 长度

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

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

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

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

示例 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

Related Topics

  • 数组
  • 双指针
class Solution {
    public int removeElement(int[] nums, int val) {
        int index = 0;  //初始化索引值
        for (int num : nums){  //增强for循环,定义一个变量便是每个数组元素,遍历整个数组
            if (num != val){
                nums[index] = num;
                index++;
            }
        }
        return index;
    }
}

标签:java,val,nums,int,元素,力扣,数组,移除,长度
From: https://blog.csdn.net/weixin_73129420/article/details/137093052

相关文章

  • JAVA八股
    JAVA八股JVM1.运行时数据区域JDK1.7和JDK1.8有区别:线程私有的程序计数器:是当前线程所执行的字节码的行号指示器,唯一一个不会出现OutOfMemoryError的内存区域java虚拟栈:随着线程的创建而创建,随着线程的死亡而死亡。局部变量表主要存放了编译期可知的各种数据类型(boo......
  • 2024年Java面试题汇总手册(持续更新版)
    简化图如下所示现在假设由于某种原因,employee-producer公开的服务会抛出异常。我们在这种情况下使用Hystrix定义了一个回退方法。这种后备方法应该具有与公开服务相同的返回类型。如果暴露服务中出现异常,则回退方法将返回一些值。6、什么是Hystrix断路器?我们需要它吗?......
  • #yyds盘点# Java双刃剑之Unsafe类详解
    for(inti=0;i<2;i++){unsafe.copyMemory(null,addr,null,addr3+size*i,4);}System.out.println(unsafe.getInt(addr));System.out.println(unsafe.getLong(addr3));}finally{unsafe.freeMemory(addr);unsafe.freeMemory(addr3);}}先看结果输出:addr:24......
  • 2024年Java高分面试指南横空出世!1000道面试题+300W字解析
    42、java中有没有指针?43、java中是值传递引用传递?44、实例化数组后,能不能改变数组长度呢?45、假设数组内有5个元素,如果对数组进行反序,该如何做?46、形参与实参区别47、构造方法能不能显式调用?48、什么是方法重载?49、构造方法能不能重写?能不能重载?50、内部类......
  • #私藏项目实操分享# Java实现基于朴素贝叶斯的情感词分析
    另外,在贝叶斯公式的基础上进行变形,可以得到下面的公式:$$P(B_i|A)=\frac{P(B_i)P(A|B i)}{\sum {j=1}^nP(B_j)P(A|B_j)}$$其中 B1,B2,…,Bj 是一个完备事件组,上面的公式可以表示在事件A已经发生的条件下,寻找导致A发生的各种“原因”的 Bi 的概率。朴素贝叶斯......
  • 区块链编程七大语言,使用最多的竟是Java
    SQL——结构化查询语言(StructuredQueryLanguage)或“Sequel”,是IBM开发的一种编程语言,用于与存储、查询和处理数据的数据库进行沟通。如今SQL约拥有700万名开发者。MySQL、PostgreSQL、SQLServer、DB2、Oracle等主流数据库都使用SQL来开发应用程序。使用SQL的区块链项......
  • 学习java时候的笔记(四)
    数组什么是数组?数组指的是一种容器,可以用来储存同种数据类型的多个值一维数组一维数组的定义:格式1数据类型[]数组名例:int[]array格式2数据类型数组名[]例intarray[]一维数组的静态初始化初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中......
  • java基础 韩顺平老师的 面向对象(高级) 自己记的部分笔记
     373,类变量引出 代码就提到了问题分析里的3点packagecom.hspedu.static_;publicclassChildGame{publicstaticvoidmain(String[]args){//定义一个变量count,统计有多少小孩加入了游戏intcount=0;Childchild1=newChild(......
  • 【面试精讲】Java垃圾回收算法分析和代码示例
    【面试精讲】Java垃圾回收算法分析和代码示例目录一、引用计数(ReferenceCounting)算法二、可达性分析(ReachabilityAnalysis)算法三、标记-清除(Mark-Sweep)算法四、复制(Copying)算法五、标记-整理(Mark-Compact)算法六、分代收集(GenerationalCollection)算法七、死亡对象判......
  • Java学习路线
    Java学习路线可以分为几个阶段,每个阶段都有其特定的学习目标和内容。以下是一条详细的Java学习路线:###阶段1:Java入门-**目标**:培养兴趣、快速上手。-**前期准备**:准备好在线编程工具,如菜鸟工具,以及记笔记软件,如Typora。-**Java编程基础**(约45天): -Java特点、环......