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

题目:

链接:

https://leetcode.cn/problems/number-of-longest-increasing-subsequence/description/

代码:

复制代码
class Solution {
    public int findNumberOfLIS(int[] nums) {
        int n=nums.length;
        int[] len=new int[n];
        int[] count=new int[n];
        //初始化
        for(int i=0;i<n;i++) len[i]=count[i]=1;
        int maxLen=0,maxCount=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<i;j++){
                //转移方程
                if(nums[i]>nums[j]){
                    if(len[i]==len[j]+1){
                        count[i]+=count[j];
                    }else if(len[i]<len[j]+1){
                        len[i]=len[j]+1;
                        count[i]=count[j];
                    }
                }
            }
            //返回值
            if(maxLen<len[i]){ 
                maxLen=len[i];
                maxCount=count[i];
            }else if(maxLen==len[i]){
                maxCount+=count[i];
            }
        }
        //返回结果
        return maxCount;
    }
}

状态表示:

  • len[i]表示:以i结尾的子序列中,最长递增子序列的长度
  • count[i]表示:以i结尾的子序列中,最长递增子序列的个数
相关推荐
Coovally AI模型快速验证4 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
pusue_the_sun4 小时前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
RaymondZhao345 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt
zhangfeng11335 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类
圣保罗的大教堂6 小时前
leetcode 2348. 全 0 子数组的数目 中等
leetcode
啊阿狸不会拉杆6 小时前
《算法导论》第 32 章 - 字符串匹配
开发语言·c++·算法
小学生的信奥之路6 小时前
洛谷P3817题解:贪心算法解决糖果分配问题
c++·算法·贪心算法
你知道网上冲浪吗7 小时前
【原创理论】Stochastic Coupled Dyadic System (SCDS):一个用于两性关系动力学建模的随机耦合系统框架
python·算法·数学建模·数值分析
地平线开发者8 小时前
征程 6 | PTQ 精度调优辅助代码,总有你用得上的
算法·自动驾驶
Tisfy9 小时前
LeetCode 837.新 21 点:动态规划+滑动窗口
数学·算法·leetcode·动态规划·dp·滑动窗口·概率