最长上升子序列个数

https://pic.leetcode-cn.com/1632104456-npwtgs-file_1632104456592

 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
class Solution {
public:
    int findNumberOfLIS(vector<int>& nums) {
        int n = nums.size();
        vector<int> dp(n,1),cnt(n,1);
        int maxLen = 1;
        for(int i=1;i<n;++i) {
            for(int j=0;j<i;++j) {
                if(nums[j]< nums[i]) {
                    if(dp[j] + 1> dp[i]) {
                        dp[i] = dp[j] + 1;
                        cnt[i] = cnt[j];
                    }else if(dp[j] +1 == dp[i]) {
                        cnt[i] = cnt[i] + cnt[j];
                    }
                }
            }
            maxLen = max(maxLen,dp[i]);
        }
        int res = 0;
        for(int i=0;i<n;++i)
        {
            if(dp[i] == maxLen) {
                res = res + cnt[i];
            }
        }
        return res;
    }
};

其他「序列 DP」内容 意犹未尽?可以尝试下面的「序列 DP」问题:

题目 题解 难度 推荐指数

意犹未尽?可以尝试下面的「序列 DP」问题:

题目 题解 难度 推荐指数
354. 俄罗斯套娃信封问题 LeetCode 题解链接 困难 🤩🤩🤩🤩🤩
368. 最大整除子集 LeetCode 题解链接 中等 🤩🤩🤩🤩
446. 等差数列划分 II - 子序列 LeetCode 题解链接 困难 🤩🤩🤩🤩🤩
740. 删除并获得点数 LeetCode 题解链接 中等 🤩🤩🤩🤩🤩
978. 最长湍流子数组 LeetCode 题解链接 中等 🤩🤩🤩
1035. 不相交的线 LeetCode 题解链接 中等 🤩🤩🤩🤩
1143. 最长公共子序列 LeetCode 题解链接 中等 🤩🤩🤩🤩
1473. 粉刷房子 III LeetCode 题解链接 困难 🤩🤩🤩🤩
1713. 得到子序列的最少操作次数 LeetCode 题解链接 困难 🤩🤩🤩🤩🤩

注:以上目录整理来自 wiki ,任何形式的转载引用请保留出处。

作者:AC_OIer 链接:https://leetcode-cn.com/problems/number-of-longest-increasing-subsequence/solution/gong-shui-san-xie-lis-de-fang-an-shu-wen-obuz/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。