Skip to content
On this page

26. 删除排序数组中的重复项

原题链接:LeetCode 26. 删除排序数组中的重复项

题目描述

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k。去重后,返回唯一元素的数量 k

nums 的前 k 个元素应包含 排序后 的唯一数字。下标 k - 1 之后的剩余元素可以忽略。

判题标准:

系统会用下面的代码来测试你的题解:

2

示例 2:

5

提示:

1 <= nums.length <= 3 * 104
-100 <= nums[i] <= 100
- `nums` 已按 **非递减** 顺序排列。

难度: Easy


题解代码

javascript
/**
 * @param {number[]} nums
 * @return {number}
 */
// const removeDuplicates = nums => {
//     let count = 0
//     for (let i = 1; i < nums.length; i++) {
//         if (nums[i] > nums[count]) {
//             nums[count + 1] = nums[i]
//             count++
//         }
//     }
//     return count + 1
// }

const removeDuplicates = nums => {
    let slow = 0
    for (let fast = 1; fast < nums.length; fast++) {
        if (nums[fast] > nums[slow]) {
            nums[slow + 1] = nums[fast]
            slow++
        }
    }
    return slow + 1
}

技术文档集合