#include <stdio.h>
#include <stdlib.h>
int lengthOfLNIS(int *nums, int length) {
//len为子问题:以i结尾的最长不上升子序列
int len[length+10];
for(int i = 0; i < length; i++)
len[i] = 0;
len[0] = 1;
for(int i = 0; i < length; i++){
int tmp = 0;
for(int j = 0; j < i; j++){
if(nums[i] <= nums[j] && len[j] > tmp)
tmp = len[j];
}
len[i] = tmp + 1;
}
int ans = 0;
for(int i = 0; i < length; i++)
if(len[i] > ans)
ans = len[i];
return ans;
}
int main() {
int n;
scanf("%d", &n);
int *a = malloc(sizeof(int) * n);
for (int i = 0; i < n; ++i) {
scanf("%d", &a[i]);
}
printf("%d\n", lengthOfLNIS(a, n));
return 0;
}
计蒜客-最长不上升子序列
猜你喜欢
转载自blog.csdn.net/a1097304791/article/details/81221720
今日推荐
周排行