首页 > 其他分享 >LC300 LCS

LC300 LCS

时间:2022-09-21 13:33:46浏览次数:46  
标签:LCS nums int list pos LC300 ans dp

int lengthOfLIS(vector<int>& nums) {
    int len=nums.size();
    int dp[len];
    int list[len];//记录序列下标
    vector<int> v;
    for(int i=0;i<len;i++){
        dp[i]=1;
        list[i]=i;
    }
    /*
        找nums[i]之前最长的序列
    */
    for(int i=1;i<len;i++){
        for(int j=0;j<i;j++){
            if(nums[i]>nums[j]){
                if(dp[j]+1>dp[i]){
                    dp[i]=dp[j]+1;
                    list[i]=j;//记录上一个最长序列的下标
                }
                //dp[i]=max(dp[i],dp[j]+1);
            }
        } 
    }
    int ans=0;
    int pos=0;
    for(int i=0;i<len;i++){
        if(dp[i]>ans){
            ans=dp[i];
            pos=i;
        }
       // ans=max(ans,dp[i]);
    }
    
    while(pos!=list[pos]){
       v.push_back(nums[pos]);
       pos=list[pos];  
    }
    v.push_back(nums[pos]);
    reverse(v.begin(),v.end());

    return ans;
}

标签:LCS,nums,int,list,pos,LC300,ans,dp
From: https://www.cnblogs.com/lwx11111/p/16715276.html

相关文章