Remove Duplicates from Sorted Array
Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
Example 1:
Given nums = [1,1,2],
Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
It doesn’t matter what you leave beyond the returned length.
Example 2:
Given nums = [0,0,1,1,1,2,2,3,3,4],
Your function should return length = 5, with the first five elements of nums being modified to 0, 1, 2, 3, and 4 respectively.
It doesn’t matter what values are set beyond the returned length.
题意:给定一个排好序的数组返回数组中不同元素的个数,该题比较简单,不再分析,直接给出C语言代码:
int removeDuplicates(int* a, int numsSize) {
if(numsSize==0)
return 0;
else
{
int j=0;
for(int i=0;i<numsSize;i++)
{
if(a[j]!=a[i])
a[++j]=a[i];
}
return j+1;
}
}
本文介绍了一个简单的算法,用于从已排序的数组中去除重复元素,只保留唯一元素,并返回新数组的长度。算法通过一次遍历实现,不使用额外的空间,符合O(1)额外内存的要求。示例展示了如何将输入数组[1,1,2]处理为[1,2],并返回长度2。
1105

被折叠的 条评论
为什么被折叠?



