首页 > 其他分享 >力扣- 删除有序数组中的重复项

力扣- 删除有序数组中的重复项

时间:2023-08-15 16:02:32浏览次数:33  
标签:删除 nums int 题解 元素 力扣 数组 expectedNums

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k 。

判题标准:

系统会用下面的代码来测试你的题解:

int[] nums = [...]; // 输入数组
int[] expectedNums = [...]; // 长度正确的期望答案

int k = removeDuplicates(nums); // 调用

assert k == expectedNums.length;
for (int i = 0; i < k; i++) {
    assert nums[i] == expectedNums[i];
}

如果所有断言都通过,那么您的题解将被 通过

 

示例 1:

2
1
2 
。

示例 2:

5
0
1
2
3
4

 

提示:

  • 1 <= nums.length <= 3 * 104
  • -104 <= nums[i] <= 104
  • nums 已按 升序 排列
public int removeDuplicates(int[] nums) {
    int i = 0; // 定义一个指针 i,指向当前不重复元素的位置
    for (int j = 1; j < nums.length; j++) {
        if (nums[i] != nums[j]) { // 如果当前元素与下一个元素不相等
            nums[++i] = nums[j]; // 将下一个元素赋值给 nums[i+1],即更新不重复元素的位置和值
        }
    }
    return i + 1; // 返回不重复元素的个数,即 i+1
}

标签:删除,nums,int,题解,元素,力扣,数组,expectedNums
From: https://blog.51cto.com/u_16199760/7089751

相关文章

  • javascript 高级编程系列 - 定型数组
    定型数组是一种用于处理数值类型数据的专用数组,最早是在webGL中使用的,WebGL是OpenGLES2.0的移植版,在web页面中通过<canvas>元素来呈现它。定型数组也被一同移植而来,其可为javascript提供快速的按位运算。在javascript中,数字是以64位浮点格式储存的,并按需转换为32位整数,所以算术......
  • javascript 高级编程系列 - 数组
    1.Array.of创建数组constitems=Array.of(1,2,3);console.log(items);2.Array.from将可迭代对象或类数组对象转换为数组constitems=Array.from('123');console.log(items);3.Array.prototype.find&Array.prototype.findeIndex在数组中查找符合条件的第一......
  • vue + element-ui 的from表单嵌套数组的验证问题
    在vue+element-ui/plus的项目中,有的时候会出现表单自定义增加数组字段,并要对新增加的字段添加相关验证。举个例子//结构data(){return{form:{name:'',Param:[{id:0,label:'',Itemtype:0,},......
  • 如何向这个public static void main(String[] args)中的args数组传递参数呢
    如何向这个publicstaticvoidmain(String[]args)中的args数组传递参数呢要向publicstaticvoidmain(String[]args)中的args数组传递参数,可以在命令行中运行Java程序时附加参数。以下是两种常见的方法:在命令行中手动输入参数:我们首先要进入这个类所在的文件夹在......
  • postgres do body定义二维数组
    customFieldLabelsvarchar[][]:='{{"a","b",NULL},{"a","b","NULL"}}'::varchar[][];是string[][],所以{"a","b"}是用了双引号的,当然也可以都不用双引号,但是不用的话NULL值就不好处理,字符串"NULL"和NU......
  • 7.1 C/C++ 实现动态数组
    动态数组相比于静态数组具有更大的灵活性,因为其大小可以在运行时根据程序的需要动态地进行分配和调整,而不需要在编译时就确定数组的大小。这使得动态数组非常适合于需要动态添加或删除元素的情况,因为它们可以在不浪费空间的情况下根据需要动态增加或减少存储空间。动态数组的内存......
  • 获得数组的交集与差集
    PHP获得数组的交集与差集服务器君一共花费了71.420ms进行了6次数据库查询,努力地为您提供了提供了这个页面。数组的交集array_intersect()array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其......
  • 稀疏数组(五子棋)详解
    稀疏数组的介绍(五子棋)当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方式是:记录数组一共有几行列,有多少个不同把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模------->packagearra......
  • 学习笔记 - Java 数组
    数组的概述数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。数组是有序排列的,且数组属于引用数据类型,但数组中的元素既可以是基本数据类型,又可以是引用数据类型。数组的存储是在内存中开启一片连续的空间,长度一旦......
  • P3374 【模板】树状数组
    \(P3374\)【模板】树状数组1#include<bits/stdc++.h>usingnamespacestd;constintN=5*1e5+10;intn,m;inta[N];//树状数组模板inttr[N];intlowbit(intx){returnx&-x;}voidadd(intx,intc){for(inti=x;i<N;i+=lo......