zoukankan      html  css  js  c++  java
  • LeetCode--Longest Consecutive Sequence(最长连续序列) Python

    题目描述:

      Longest Consecutive Sequence(最长连续序列)

    中文:

    给定一个未排序的整数数组,找出最长连续序列的长度。

    要求算法的时间复杂度为 O(n)

    英文:

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

    Your algorithm should run in O(n) complexity.

    class Solution(object):
        def longestConsecutive(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            Dict = {}
            for i in nums:
                Dict[i] = 1   
            List = Dict.keys()       
            count_max = 0   
            while(len(Dict)):
                List = Dict.keys()
                count = 1
                temp_left = List[0]
                temp_right = List[0]
                Dict.pop(temp_left)
                while(1):
                    if temp_left-1 in Dict and temp_right+1 in Dict:
                        count = count+2
                        temp_left = temp_left-1
                        temp_right = temp_right+1
                        Dict.pop(temp_left)
                        Dict.pop(temp_right)
                        continue
                    elif temp_left-1 not in Dict and temp_right+1 in Dict:
                        count = count+1
                        temp_right = temp_right+1
                        Dict.pop(temp_right)
                        continue
                    elif temp_left-1 in Dict and temp_right+1 not in Dict:
                        count = count+1
                        temp_left = temp_left-1
                        Dict.pop(temp_left)
                        continue
                    else:
                        if count>count_max:
                            count_max=count
                            break
                        else:
                            break
            return count_max

    题目来源:力扣

  • 相关阅读:
    【focus-lei 】微服务
    queryURLParams
    时间字符串的处理
    str.charAt()与str[]的区别
    数组去重函数封装
    数组去重的几种方法
    splice与slice区别
    变量与属性名的区别
    parseInt parseFloat Number三者转换的方式
    原生js实现选项卡样式切换的几种方式。
  • 原文地址:https://www.cnblogs.com/spp666/p/11544654.html
Copyright © 2011-2022 走看看