题目:给定一个序列 An = a1 ,a2 , ... , an ,找出最长的子序列使得对所有 i < j ,ai < aj 。求出这个子序列的长度。
输入描述:
输入的序列
输出描述:
最长递增子序列的长度
分析:遍历数组,记录每个递增子数组的长度,最终取最长的子数组。
code:
def maxLen(An):
if len(An) == 1:
return 1
else:
maxLen = 0
i = 0
while i < len(An)-1:
res = 1
j = i+1
k = An[i]
while j < len(An):
if k <= An[j]:
res += 1
if res > maxLen:
maxLen = res
k = An[j]
j += 1
i += 1
return maxLen
if __name__ == "__main__":
An = [1, -1, 2, -2, 3, -3, 4]
print(maxLen(An))
程序运行结果为:
4
网友评论