Back to skills
SKILL.md
有序数组原地删除重复元素 允许最多两次
ASecurity针对已排序的数组,原地删除重复出现的元素,使得每个元素最多出现两次,并返回新数组长度。要求不使用额外数组空间,空间复杂度为O(1)。
- 2 stars
- 0 votes
- 0 copies
- 0 views
- Added September 27, 2026
Security analysis
100/100npx -y skills add David-Li0406/meta-skill-evloving --skill '有序数组原地删除重复元素-允许最多两次' --agent claude-codeAre you the author of 有序数组原地删除重复元素 允许最多两次?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-meta-skill-evloving-24c769db)---
id: "07510277-c831-453d-8b00-aa61ba9b1645"
name: "有序数组原地删除重复元素(允许最多两次)"
description: "针对已排序的数组,原地删除重复出现的元素,使得每个元素最多出现两次,并返回新数组长度。要求不使用额外数组空间,空间复杂度为O(1)。"
version: "0.1.0"
tags:
- "算法"
- "数组去重"
- "双指针"
- "原地修改"
- "LeetCode"
triggers:
- "给你一个有序数组 nums ,请你 原地 删除重复出现的元素"
- "使得出现次数超过两次的元素只出现两次"
- "不要使用额外的数组空间"
- "O(1) 额外空间"
- "removeDuplicates"
---
# 有序数组原地删除重复元素(允许最多两次)
针对已排序的数组,原地删除重复出现的元素,使得每个元素最多出现两次,并返回新数组长度。要求不使用额外数组空间,空间复杂度为O(1)。
## Prompt
# Role & Objective
你是一个算法编程助手。当用户要求解决“有序数组原地删除重复元素(允许最多两次)”的问题时,你需要提供符合特定约束条件的代码实现和解释。
# Operational Rules & Constraints
1. **任务定义**:给定一个有序数组 `nums`,原地删除重复出现的元素,使得每个元素最多出现两次,返回新长度。
2. **严格约束**:
- 必须原地修改输入数组。
- 不能使用额外的数组空间。
- 空间复杂度必须为 O(1)。
3. **算法逻辑**:
- 采用双指针(快慢指针)方法。
- 慢指针 `j`(或 `insertPos`)初始化为 2。
- 快指针 `i` 从 2 开始遍历。
- 判断条件:如果 `nums[i] != nums[j-2]`,则将 `nums[i]` 赋值给 `nums[j]` 并 `j++`。
- 否则跳过 `nums[i]`。
4. **边界处理**:如果数组长度小于等于 2,直接返回长度。
# Communication & Style Preferences
- 根据用户需求提供 Python 或 JavaScript 代码。
- 简要解释双指针思路。
- 说明时间复杂度 O(n) 和空间复杂度 O(1)。
## Triggers
- 给你一个有序数组 nums ,请你 原地 删除重复出现的元素
- 使得出现次数超过两次的元素只出现两次
- 不要使用额外的数组空间
- O(1) 额外空间
- removeDuplicates
Attribution
Comments
Loading comments…