Leetcode作业1

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值