问题:
在一个给定的数值序列中,找到一个子序列,使得这个子序列元素的数值依次递增,并且这个子序列的长度尽可能地大。最长递增子序列中的元素在原序列中不一定是连续的。
思路:首先确定一个子序列的当前值t和子序列的长度len,循环数组,从第一个数开始与后面的值比较大小,更新t和len的值,更新t和len的值。下一次再从第二个数这样与后面的数比较大小,每一次循环完都会比较len的长度,选择最大的值,并且把最大长度的当前第一个数赋值给son(子序列的第一个数),这样就找到了最大子序列的长度和子序列的第一个值,只需要循环数组,输出比第一个值大的数即可。
代码:
#include<iostream>
#include<stdio.h>
#include <stdlib.h>
using namespace std;
int a[100];//定义数组
int main()