问题描述
蒜头君面前有一排 n 个木桩,木桩的高度分别是h1,h2,h3…hn。蒜头第一步可以跳到任意一个木桩,接下来的每一步蒜头不能往回跳只能往前跳,并且跳下一个木桩的高度 不大于 当前木桩。蒜头君希望能踩到尽量多的木桩,请你帮蒜头计算,最多能踩到多少个木桩。
输入格式
第一行输入一个整数 n 代表木桩个数。第二行输入 n 个整数h1,h2,h3..hn,分别代表 n 个木桩的高度。(1≤n≤1000,1≤hi≤100000)
输出格式
输出一个整数,代表最多能踩到的木桩个数,占一行。
样例输入
6
3 6 4 1 4 2
样例输出
4
#include<bits/stdc++.h>
using namespace std;
int dp[1010];
int h[100010];
int len;
int n;
int LDS_nlgn()
{
dp[1]=h[1];
len=1;
for(int i=2;i<=n;i++){
if(h[i]<=dp[len]){
dp[++len]=h[i];
}else{
int k;
for(k=1;dp[k]>=h[i];k++);
dp[k]=h[i];
}
}
return len;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d