Appearance
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
}