资讯专栏INFORMATION COLUMN

128. Longest Consecutive Sequence-从数组中寻找最长的连续数字

Pandaaa / 2216人阅读

摘要:描述例子要求分析从未排序的数组中寻找最长的连续的数字,必然要循环一遍所有的数字,因为连续,所以以出来的数字为基准,向左右扩散,直到没有连续的,利用了和的特性。

描述:

Given an unsorted array of integers, find the length of the longest consecutive elements sequence.

例子:

Given [100, 4, 200, 1, 3, 2],
The longest consecutive elements sequence is [1, 2, 3, 4]. Return its length: 4.

要求:

Your algorithm should run in O(n) complexity.

分析

从未排序的数组中寻找最长的连续的数字,必然要循环一遍所有的数字,因为连续,所以以pop出来的数字为基准,向左右扩散,直到没有连续的,利用了pop和in的特性。 

代码:

class Solution:
    def longestConsecutive(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        final_length=0
        num_dict=dict()
        maxlen_cur=0
        while nums:
            m=n=nums.pop()
            maxlen_cur=1
            while m-1 in nums:
                nums.remove(m-1)
                maxlen_cur+=1
                # m-=1
                m-=1
            while n+1 in nums:
                nums.remove(n+1)
                maxlen_cur+=1
                n+=1
            final_length=max(maxlen_cur,final_length)
        return final_length

if __name__=="__main__":
    a=[100, 4, 200, 1, 3, 2]
    st=Solution()
    out=st.longestConsecutive(a)
    print(out)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41517.html

相关文章

  • [Leetcode] Longest Consecutive Sequence 最长连续数列

    摘要:集合法复杂度时间空间思路将所有数都加入集合中,然后再遍历这些数,因为我们能的判断某个数是否在集合中,所以我们可以一个个向上或者向下检查。时间复杂度仍是,因为我们不会检查不存在于数组的数,而存在于数组的数也只会检查一次。 Longest Consecutive Sequence Given an unsorted array of integers, find the length o...

    lei___ 评论0 收藏0
  • [Leetcode] Binary Tree Longest Consecutive Sequenc

    摘要:递归法复杂度时间空间思路因为要找最长的连续路径,我们在遍历树的时候需要两个信息,一是目前连起来的路径有多长,二是目前路径的上一个节点的值。代码判断当前是否连续返回当前长度,左子树长度,和右子树长度中较大的那个 Binary Tree Longest Consecutive Sequence Given a binary tree, find the length of the lon...

    xi4oh4o 评论0 收藏0
  • [LintCode/LeetCode] Longest Consecutive Sequence

    摘要:先排序,然后用数组记录每一位上连续序列的长度,每次循环更新最大值存为。 Problem Given an unsorted array of integers, find the length of the longest consecutive elements sequence. Clarification Your algorithm should run in O(n) com...

    buildupchao 评论0 收藏0
  • 前端 | 每天一个 LeetCode

    摘要:在线网站地址我的微信公众号完整题目列表从年月日起,每天更新一题,顺序从易到难,目前已更新个题。这是项目地址欢迎一起交流学习。 这篇文章记录我练习的 LeetCode 题目,语言 JavaScript。 在线网站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公众号: showImg(htt...

    张汉庆 评论0 收藏0
  • 298. Binary Tree Longest Consecutive Sequence

    摘要:题目解答分治,一种不带返回值,但需要用全局变量,一种带返回值,不用全局变量有全局变量 题目:Given a binary tree, find the length of the longest consecutive sequence path. The path refers to any sequence of nodes from some starting node to a...

    荆兆峰 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<