解决方案


方法:双指针法

算法

数组完成排序后,我们可以放置两个指针 ,其中 是慢指针,而 是快指针。只要 ,我们就增加 以跳过重复项。

当我们遇到 时,跳过重复项的运行已经结束,因此我们必须把它()的值复制到 。然后递增 ,接着我们将再次重复相同的过程,直到 到达数组的末尾为止。

复杂度分析

  • 时间复杂度:, 假设数组的长度是 ,那么 分别最多遍历 步。

  • 空间复杂度: