如何从排序数组中删除重复项并使用 C# 返回长度?
数组已经排序,我们可以保留两个指针ii和jj,其中ii是慢跑者,而jj是快跑者。只要nums[i]=nums[j]nums[i]=nums[j],我们增加jj以跳过重复项。
当我们遇到nums[j]!=nums[i]时,重复运行已经结束,因此我们必须将其值复制到nums[i+1]nums[i+1]。然后ii递增,我们再次重复相同的过程,直到jj到达数组的末尾。
时间复杂度-O(N)
示例
using System; namespace ConsoleApplication{ public class Arrays{ public int RemoveDuplicatesFromSortedArrayAndReturnLength(int[] arr){ int index = 1; for (int i = 0; i输出结果 5