免责声明:本文来源于个人知识与公开资料,仅用于学术交流。
删除排序数组中的重复项
这篇文章讨论如何从一个非严格递增的数组 nums
中删除重复的元素,使每个元素只出现一次,并返回新数组的长度。因为数组是排序的,只要是相同的肯定是挨着的,所以我们需要遍历所有数组,然后前后两两比较,如果有相同的就把后面的给删除。
描述
给定一个非严格递增排列的数组 nums
,需要:
- 原地修改数组,使前
k
个元素包含数组中的唯一元素,并保持它们的相对顺序。 - 返回
k
,即唯一元素的个数。
原地算法:
一个算法有时候会不正当地被称为原地算法,只因为它用它的输出资料会覆盖掉它的输入资料。事实上这并不足够(在快速排序案例中所展示的)或是它所必须的;输出资料的空间可能是固定的,或如果以输出为串流资料而言,也甚至是可能无法被数清楚的。另一方面来看,有时候要决定一个算法是不是原地,而数它的输出空间可能是比较可行的,像是底下的第一个的
reverse 范例;如此使得它更难去严格地定义原地算法。在理论上的应用像是l