[LeetCode]128. Longest Consecutive Sequence
128. Longest Consecutive Sequence
动态规划
dp[i] = dp[i-1] + 1 (if dp[i] - dp[i-1] == 1)
dp[i] = dp[i-1] (if dp[i] == dp[i-1])
dp[i] = 1 (else)class Solution(object):
    def longestConsecutive(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if not nums:
            return 0
        nums.sort()
        dp = [0] * len(nums)
        dp[0] = 1
        res = 1
        for i in range(1, len(nums)):
            if nums[i] - nums[i - 1] == 1:
                dp[i] = dp[i - 1] + 1
            elif nums[i] == nums[i-1]:
                dp[i] = dp[i-1]
            else:
                dp[i] = 1
            res = max(res, dp[i])
        return res 
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号