class Solution(object):
def lengthOfLIS(self, nums):
if nums == []:
return 0
d = {1 : nums[0]}
maxLength = 1
for num in nums[1:]:
added = False
for i in list(d.items())[::-1]:
if num > i[1]:
if d.get(i[0] + 1) == None:
d[i[0] + 1] = num
maxLength = max(maxLength, i[0] + 1)
else:
d[i[0] + 1 ] = min(num, d[i[0] + 1])
added = True
break
if not added:
d[1] = num
return maxLength
算法分析与设计第八周:300. Longest Increasing Subsequence
最新推荐文章于 2017-06-26 14:19:47 发布