从一串整数中找出最长严格递增的子串。
python实现:
#得到以nums[0]为起始元素的最长子串
def getlongest(nums):
if len(nums) == 1:
return nums
max_list = [nums[0]]
for i in range(1,len(nums)):
if nums[i] > nums[0]:
sub_list = getlongest(nums[i:])
if len(sub_list) + 1 > len(max_list):
max_list = [nums[0]] + sub_list
return max_list
#得到nums所有严格递增子串中最长的
def final(nums):
max_list = []
for i in range(len(nums)):
sub_list = getlongest(nums[i:])
if len(sub_list) > len(max_list):
max_list = sub_list
return max_list
#example
nums = [-15,-13,9,2,3,8,8,10]
print(final(nums))