package
0.0.0-20241220224003-b7cf03a90b2b
Repository: https://github.com/szhou12/leetcode-go.git
Documentation: pkg.go.dev
# README
673. Number of Longest Increasing Subsequence
Solution idea
DP - LIS题的延伸
-
维护两个记事本:
dp[i]
: the length of LIS ending at icount[i]
: the number of LIS ending at i
-
构建
dp[i]
与经典题LIS一样 -
如何构建
count[i]
?- if
dp[j]+1 > dp[i]
, 说明找到了一个更长的LIS, 它是目前的最长LIS, 所以count[i]
重新继承count[j]
- if
dp[j]+1 == dp[i]
, 说明现在这个LIS属于目前最长的LIS之一, 所以count[i]
新添加count[j]
- if
-
用一个global variable
maxLeng
在每一轮i
记录看过的最长的LIS发生在以哪个i结尾的LIS- 用于最后遍历
dp
并把相等元素的index对应的count
加入到结果中
- 用于最后遍历
Time complexity = $O(n^2)$