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()
针对LeetCode第26题,介绍了一种不使用额外存储空间的优化算法。该算法通过将不重复元素移至数组前端并裁剪多余部分来解决重复元素问题。详细解析了从错误尝试到最终解决方案的过程。
9050

被折叠的 条评论
为什么被折叠?



