templete_LIS

来源:互联网 发布:node forever 启动 编辑:程序博客网 时间:2024/06/05 00:30
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <string>using namespace std;const int MAXN = 100;int d[MAXN];int LIS(int *A, int LEN){int len = 0;d[0] = A[0];for (int i = 1; i < LEN; i++){if (A[i] > d[len]) //ÑϸñµÝÔö {d[++len] = A[i]; }else{int t = lower_bound(d, d + len, A[i]) - d;d[t] = A[i];}}return len + 1;}int main(){int N;int A[MAXN];while (scanf("%d", &N) != EOF){for (int i = 0; i < N; i++){scanf("%d", &A[i]);}/*Èç¹ûÊÇ×Ö·û´®Ò²ºÃ˵£¬¾ÍÊÇÓøöforÑ­»·»»³ÉÕûÐÎÊý×é¾ÍÐÐÁË£¬Ò»ÑùµÄµÀÀí¡£ */int ans = LIS(A, N);printf("The longest length about this array is : %d\n", ans);printf("They are:\n");for (int i = 0; i < ans; i++){printf("%d ", d[i]);}printf("\n");}system("pause");return 0;}

原创粉丝点击