[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
关注公众号:数据结构与算法那些事儿,每天一篇数据结构与算法