在原数组中删除重复的元素 | Python
2017-06-10 21:17
375 查看
在原数组中删除重复元素:假设 nums = [1,1,1,2,2,3,3,3,3,4]; 经过删除后,得到的结果为:nums=[1, 2, 3, 4]
数组在做增删时,需要借助index,操作起来比较麻烦(相对链表而言更难),个人觉得不适合用for 的方式控制指针运动,而是应当在循环体中控制指针更为容易。
可以先定义一个死循环,然后在循环体内部定义跳出条件。
def dropDuplicate(nums):
dic = {}
ptr = 0
while True:
if ptr>=len(nums):
break
if nums[ptr] in dic:
nums.pop(ptr)
ptr-=1
else:
dic[nums[ptr]]=1
ptr+=1
if __name__ =="__main__":
nums = [1,1,1,2,2,3,3,3,3,4]
dropDuplicate(nums)
print nums上述代码中,ptr表示列表的指针,每轮循环指针前进一步,当删除元素时,指针应当停在原处,以便重新判断删除后该位置上的元素是否符合保留的条件。当指针即将发生越界时,提前跳出循环。
数组在做增删时,需要借助index,操作起来比较麻烦(相对链表而言更难),个人觉得不适合用for 的方式控制指针运动,而是应当在循环体中控制指针更为容易。
可以先定义一个死循环,然后在循环体内部定义跳出条件。
def dropDuplicate(nums):
dic = {}
ptr = 0
while True:
if ptr>=len(nums):
break
if nums[ptr] in dic:
nums.pop(ptr)
ptr-=1
else:
dic[nums[ptr]]=1
ptr+=1
if __name__ =="__main__":
nums = [1,1,1,2,2,3,3,3,3,4]
dropDuplicate(nums)
print nums上述代码中,ptr表示列表的指针,每轮循环指针前进一步,当删除元素时,指针应当停在原处,以便重新判断删除后该位置上的元素是否符合保留的条件。当指针即将发生越界时,提前跳出循环。
相关文章推荐
- js 删除数组重复元素
- php array_flip() 删除数组重复元素
- 删除数组中的重复元素
- Python删除列表中重复的元素
- 有序整型数组A,大小为n,请给出一个O(n)的算法,删除重复元素,O(1)空间
- 删除数组中重复元素
- Python代码实现:删除一个list里面的重复元素
- 怎么删除一个数组中的重复元素(HashSet)
- Java中删除数组中重复元素
- Java算法题-删除有序数组中的重复元素
- PHP删除重复数组元素
- 探讨:java中删除数组中重复元素
- 如何删除有序数组中的重复元素
- 删除数组中的重复元素
- php array_flip() 删除数组重复元素
- VB中删除数组重复元素
- 删除两个升序正数组中重复元素的C程序实现代码
- 用javascript如何删除一个数组中的重复元素
- 删除数组中重复的元素
- java 删除数组中重复元素