你所在的位置: 首页 > 正文

数组(一)从排序数组中删除重复项

2019-07-19 点击:1189
亚博ag真人

给定排序数组,您需要删除重复的元素,以便每个元素只出现一次,返回已删除数组的新长度。

不要使用额外的数组空间,必须在适当的位置修改输入数组**并使用O(1)额外空间。

原标题地址

例1:

给定数组nums=[1,1,2],

该函数应返回2的新长度,并将原始数组nums的前两个元素修改为。

您不需要考虑数组中超出新长度的元素。

例2:

鉴于nums=[0,0,1,1,1,2,2,3,3,4],

该函数应返回5的新长度,并将原始数组nums的前五个元素修改为,

您不需要考虑数组中超出新长度的元素。

描述:

为什么返回值是整数,但输出是数组?

请注意,输入数组作为“引用”传递,这意味着调用者可以看到修改函数中的输入数组。

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

//nums作为“引用”传递。换句话说,不要制作实际参数的任何副本

Int len=removeDuplicates(nums);

//修改函数中的输入数组以使调用者可见。

//根据函数返回的长度,它将以该长度打印出数组中的所有元素。

For(int i=0; i< len; i ++){

打印(NUMS [I]);

}

因为数组本身已经排序,重复元素必须是连续的,所以我们可以使用两个指针,j指针遍历数组,并且i指针的值与j指针的值进行比较。如果它不相等,则意味着遍历。一个不重复的值,该值分配给i指针位置的值。代码如下:

日期归档
ag真人游戏 版权所有© www.e-sysglobal.com 技术支持:ag真人游戏 | 网站地图