当前位置:网站首页>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;
};
边栏推荐
- Golang force buckle leetcode 1020 Number of enclaves
- hutool优雅解析URL链接并获取参数
- JVM performance tuning and practical basic theory - Part 1
- Precise query of tree tree
- Verrouillage [MySQL]
- Unified ordering background interface product description Chinese garbled
- China Light conveyor belt in-depth research and investment strategy report (2022 Edition)
- Navicat premium create MySQL create stored procedure
- visdom可视化实现与检查介绍
- JS inheritance method
猜你喜欢

704 binary search

Indentation of tabs and spaces when writing programs for sublime text

查看局域网中电脑设备

704 二分查找

2022.02.13 - 238. Maximum number of "balloons"

Deep anatomy of C language -- C language keywords

JVM performance tuning and practical basic theory - Part 1

2022.02.13 - NC002. sort

Beijing invitation media

Trying to use is on a network resource that is unavailable
随机推荐
Double pointeur en langage C - - modèle classique
2022.02.13 - NC003. Design LRU cache structure
LeetCode:剑指 Offer 42. 连续子数组的最大和
个人电脑好用必备软件(使用过)
Rviz仿真时遇到机器人瞬间回到世界坐标原点的问题及可能原因
查看局域网中电脑设备
Restful API design specification
@Jsonbackreference and @jsonmanagedreference (solve infinite recursion caused by bidirectional references in objects)
生成器参数传入参数
marathon-envs项目环境配置(强化学习模仿参考动作)
游戏解包的危害及资源加密的重要性
Process of obtaining the electronic version of academic qualifications of xuexin.com
ROS编译 调用第三方动态库(xxx.so)
Promise 在uniapp的简单使用
Introduction to the differences between compiler options of GCC dynamic library FPIC and FPIC
egg. JS directory structure
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
The harm of game unpacking and the importance of resource encryption
Report on Market Research and investment prospects of China's silver powder industry (2022 Edition)
Analysis of the source code of cocos2d-x for mobile game security (mobile game reverse and protection)