当前位置:网站首页>LeetCode:673. 最长递增子序列的个数
LeetCode:673. 最长递增子序列的个数
2022-07-06 08:44:00 【Bertil】
给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 。
注意 这个数列必须是 严格 递增的。
示例 1:
输入: [1,3,5,4,7]
输出: 2
解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。
示例 2:
输入: [2,2,2,2,2]
输出: 5
解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。
提示:
- 1 <= nums.length <= 2000
- -10^6 <= nums[i] <= 10^6
解题思路
1.首先初始化两个数组:状态dp[i]表示以nums[i] 结尾的最长上升子序列的长度,count[i] 表示以nums[i] 结尾的最长上升子序列的个数
2.然后找到最长子序列并且做好标记
3.最后统计最长子序列出现的次数并且返回
代码
/** * @param {number[]} nums * @return {number} */
var findNumberOfLIS = function(nums) {
// 初始化dp数组
let len = nums.length;
let dp = Array(len).fill(1);
let count = Array(len).fill(1);
let res = 0;
// 找到最长子序列并做好标记
for(let i = 0; i < len; i++) {
for(let j = 0; j < i; j++) {
if(nums[i] > nums[j]) {
// Math.max...的写法
if(dp[j]+1 > dp[i]) {
dp[i] = dp[j]+1
count[i] = count[j] // 最长递增子序列的个数
// 其实就是考虑相等的情况
}else if(dp[j]+1 === dp[i]) {
count[i] += count[j]
}
}
}
}
// 统计一下 max 出现的次数
let max = Math.max(...dp);
// 这里想要统计所有LIS的个数就要遍历
for (let i = 0; i < len; i ++) if(dp[i] === max) res += count[i];
return res;
};
边栏推荐
猜你喜欢
JVM 快速入门
After PCD is converted to ply, it cannot be opened in meshlab, prompting error details: ignored EOF
【嵌入式】使用JLINK RTT打印log
Bottom up - physical layer
JVM performance tuning and practical basic theory - Part 1
visdom可视化实现与检查介绍
Trying to use is on a network resource that is unavailable
pcd转ply后在meshlab无法打开,提示 Error details: Unespected eof
Light of domestic games destroyed by cracking
可变长参数
随机推荐
R language uses the principal function of psych package to perform principal component analysis on the specified data set. PCA performs data dimensionality reduction (input as correlation matrix), cus
Bottom up - physical layer
Deep analysis of C language pointer
Crash problem of Chrome browser
torch建立的网络模型使用torchviz显示
Shift Operators
China high purity silver nitrate Market Research and investment strategy report (2022 Edition)
Sublime text in CONDA environment plt Show cannot pop up the problem of displaying pictures
Process of obtaining the electronic version of academic qualifications of xuexin.com
China's high purity aluminum target market status and investment forecast report (2022 Edition)
Research Report on Market Research and investment strategy of microcrystalline graphite materials in China (2022 Edition)
【ROS】usb_cam相机标定
深度剖析C语言指针
Excellent software testers have these abilities
如何有效地进行自动化测试?
ROS compilation calls the third-party dynamic library (xxx.so)
egg. JS getting started navigation: installation, use and learning
marathon-envs项目环境配置(强化学习模仿参考动作)
Sort according to a number in a string in a column of CSV file
MySQL learning record 07 index (simple understanding)