当前位置: 面试刷题>> 去除重复元素 (经典算法题500道)


### 题目描述补充 题目:去除数组中的重复元素 给定一个整数数组,请编写一个函数来移除数组中重复的元素,使得每个元素只出现一次,并且返回移除重复元素后的新数组长度。不要使用额外的数组空间,你必须在原地修改输入数组,并在使用O(1)额外空间的条件下完成。 **示例 1**: ``` 输入: [1,1,2] 输出: 2, 数组变为 [1,2] ``` **示例 2**: ``` 输入: [0,0,1,1,1,2,2,3,3,4] 输出: 5, 数组变为 [0,1,2,3,4] ``` ### PHP 示例代码 ```php function removeDuplicates(&$nums) { if (empty($nums)) { return 0; } $length = count($nums); $index = 1; for ($i = 1; $i < $length; $i++) { if ($nums[$i] != $nums[$i - 1]) { $nums[$index] = $nums[$i]; $index++; } } return $index; } // 示例用法 $nums = [1, 1, 2]; $result = removeDuplicates($nums); echo "新数组长度为: " . $result . ", 数组为: "; print_r($nums); ``` ### Python 示例代码 ```python def removeDuplicates(nums): if not nums: return 0 index = 1 for i in range(1, len(nums)): if nums[i] != nums[i - 1]: nums[index] = nums[i] index += 1 return index # 示例用法 nums = [1, 1, 2] result = removeDuplicates(nums) print(f"新数组长度为: {result}, 数组为: {nums[:result]}") ``` ### JavaScript 示例代码 ```javascript function removeDuplicates(nums) { if (nums.length === 0) { return 0; } let index = 1; for (let i = 1; i < nums.length; i++) { if (nums[i] !== nums[i - 1]) { nums[index] = nums[i]; index++; } } return index; } // 示例用法 let nums = [1, 1, 2]; let result = removeDuplicates(nums); console.log(`新数组长度为: ${result}, 数组为: ${nums.slice(0, result)}`); ``` **码小课**网站中有更多关于算法和数据结构的相关内容,包括面试题解析、代码实现和优化技巧等,欢迎大家学习交流。
推荐面试题