26题,删除排序数组中的重复项
最初没有注意到要求不使用额外的储存空间导致错误,随后又发现使用for循环嵌套del会导致re,就十分尴尬,后来了解到del操作是o(n)的,因此整个算法是on方的,重新审题后注意到是排序的数组,就决定先把不重复的放前面,然后把剩余的pop掉,因为pop比较快所以就没有超时
class Solution:
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
num=len(nums)
j=1
if nums:
last_num=nums[0]
for i in nums:
if last_num!=i:
nums[j]=i;
last_num=i;
j+=1
it_time=num-j
i=0
while i<it_time:
i+=1
nums.pop()