力扣-128.最长子序列

刷力扣热题–第五天:128.最长子序列
菜鸟第五天开始奋战敲代码,持之以恒,见证成长

1.题目简介

在这里插入图片描述

2.题目解答

找出最长的连续序列,先定义一个空列表,之后遍历整个数组,将数组按照大小插入,最终遍历一次,返回最大值:

但这样超出内存限制,有点想不出来怎么做了,看了一下官方解题过程,茅塞顿开,就只需要判断当前数是否为某一序列的最小值,若是,则向上递加至该元素不在序列内,否则就跳过.时间复杂度为O(N),空间复杂度为O(N)
在这里插入图片描述

3. 心得体会

这道题挺难想的,确实得对题目有着比较深刻的理解做起来才不费力,代码放下面了:

class Solution(object):
    def longestConsecutive(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums = set(nums)

        max_length = 0
        for num in nums:
            if num - 1 not in nums:
                current_num = num
                current_streak = 1
                while current_num + 1 in nums:
                    current_num += 1
                    current_streak += 1
                max_length = max(max_length, current_streak)
        return max_length
        # temp_str = ''.join(str)

4.写作时长

7-7-13:50 == 7-7-15:00 七十分钟,任重而道远~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值