weinan030416

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

最长增加子数组

子串

要求一定要挨着

12
1 2 3 4 3 2 1 4 5 6 7 8

结果  6

复制代码
#include<bits/stdc++.h>
using namespace std;
//最长连续增加子串 
int a[100],dp[100],maxn=0;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        dp[i]=1;
    }
    
    for(int i=2;i<=n;i++)
    {
        if(a[i]>a[i-1])
        {
           dp[i]=dp[i-1]+1;
        }
        else
        dp[i]=1;
        if(dp[i]>maxn)
            maxn=dp[i];
    }
    
    cout<<"dp"<<endl;
    for(int i=1;i<=n;i++)
    cout<<dp[i]<<" ";
    cout<<endl;
    
    cout<<maxn;
}
复制代码

 

子序列

不一定挨着

12
1 2 3 4 3 2 1 4 5 6 7 8

结果

8

复制代码
#include<bits/stdc++.h>
using namespace std;
//最长连续增加子序列 ,不一定连续 
int a[100],dp[100],maxn=0;
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    cin>>a[i];
    int maxn=0;
    for(int i=1;i<=n;i++)
    {
           for(int j=1;j<i;j++)
           {
               int t=0; 
               t=dp[j];
               if(a[j]<a[i])
                   t++;
               if(t>dp[i])
                dp[i]=t;
        }
        if(dp[i]>maxn)
            maxn=dp[i];
   }
   cout<<maxn;
}
复制代码

 

posted on   楠030416  阅读(12)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示