(1)示例删除多余元素
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
nums = [0,0,1,1,1,2,2,3,3,4]
for i in range(len(nums)-1):
for j in nums[i+1: ]:
if nums[i] == j:
nums.remove(nums[i])
else:
break
print(nums)
(2)判断列表中元素是否相等,相等就删除多余的元素
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums:
return 0
if len(nums)==1: #单独判断列表长度为1的情况,因为之后的for循环从下标1开始
return 1
temp_num = nums[0]
count =0 #for循环中动态删除列表元素,列表缩短,为了防止下标溢出需要用count标记删除元素个数
for index, num in enumerate(nums[1:]):
if temp_num == num: #元素相等就删除
del nums[index-count]
count += 1
else:
temp_num = num
return len(nums)
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
forth = 0
back = 1
while back <= len(nums)-1:
if nums[forth] == nums[back]:
nums.pop(back)
else:
forth += 1
back += 1
return len(nums)
修改数组,保证数组前几个数字互不相同,且这几个数字的长度同返回的长度相等。
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums:
return 0
length = 0 #不存在重复数字的数组长度
for index in range(1,len(nums)): #遍历数组
if nums[index] != nums[length]:
length += 1
nums[length] = nums[index]
return length+1