删除整数数组中重复元素
时间: 2023-09-25 16:16:00 浏览: 51
可以使用双指针法来删除整数数组中的重复元素。
具体步骤如下:
1. 定义两个指针i和j,初始都指向数组的第一个元素;
2. 从第二个元素开始遍历数组,如果当前元素与前一个元素相同,则j指针向后移动一位;
3. 如果当前元素与前一个元素不同,则将当前元素赋值给i指针下一个位置的元素,并将i指针向后移动一位;
4. 最后返回i指针所指位置即可。
代码实现如下:
```python
def remove_duplicates(nums):
if not nums:
return 0
i = 0
for j in range(1, len(nums)):
if nums[j] != nums[i]:
i += 1
nums[i] = nums[j]
return i + 1
```
该算法的时间复杂度为O(n),空间复杂度为O(1)。
相关问题
产生20个1位随机正整数删除重复元素
以下是产生20个1位随机正整数并删除重复元素的Python代码:
```python
import random
# 产生20个1位随机正整数
nums = [random.randint(1, 9) for i in range(20)]
# 删除重复元素
nums = list(set(nums))
print(nums)
```
其中,`random.randint(1, 9)` 用于产生1到9之间的随机整数,`range(20)` 用于产生20个数,`list(set(nums))` 用于删除 `nums` 中的重复元素并转化为列表。
产生20个1位随机正整数,删除重复元素
好的,我可以帮您实现这个功能。以下是 Python 代码示例:
```python
import random
# 生成20个1位随机正整数
nums = [random.randint(1, 9) for _ in range(20)]
print("原始数组:", nums)
# 删除重复元素
nums = list(set(nums))
print("删除重复元素后的数组:", nums)
```
这段代码使用了 Python 的 random 模块生成了 20 个 1 位随机正整数,然后使用 set() 函数去重,最后再转换回 list 类型即可。