区块链技术博客
www.b2bchain.cn

最长递增序列

这篇文章主要介绍了最长递增序列,通过具体代码讲解8091并且分析了最长递增序列的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了最长递增序列。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/8091.html。具体如下:

 

674. 最长连续递增序列  最长递增子序列 一维dp即可 存当前最长长度,需维护最大值,

 class Solution {     public int findLengthOfLCIS(int[] nums) {         if(nums==null||nums.length==0) return 0;         int len=nums.length;         int maxLen=0;         int[] dp=new int[len];         //需要更新维护最大值,不一定出现在末尾         int maxv=1;         Arrays.fill(dp,1);        for(int i=1;i<len;i++){           if(nums[i]>nums[i-1]){               dp[i]=dp[i-1]+1;                maxv=Math.max(maxv,dp[i]);           }       }       return maxv;     } }

673. 最长递增子序列的个数 

 class Solution {     public int findNumberOfLIS(int[] nums) {         int len=nums.length;         if(nums==null||len==0) return 0;         //以nums[i]结尾最长序列长度         int[] length=new int[len];          //以nums[i]结尾最长序列 个数         int[] count=new int[len];         Arrays.fill(length,1);         Arrays.fill(count,1);         int maxlen=0;         for(int i=0;i<len;i++){              for(int j=0;j<i;j++){                if(nums[i]>nums[j]){                    if(length[j]+1>length[i]) {                          length[i]=length[j]+1;                          count[i]=count[j];                    }                    else if(length[j]+1==length[i]) count[i]+=count[j];               }                                  }              //赋值。。               maxlen= Math.max(maxlen,length[i]);         }         int res=0;         for(int i=0;i<len;i++){             if(maxlen==length[i]) res+=count[i];         }         return res;     } }

 

本文地址https://www.b2bchain.cn/8091.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 最长递增序列
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们