673. 最长递增子序列的个数
673. 最长递增子序列的个数
给定一个未排序的整数数组,找到最长递增子序列的个数。
- 示例 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。
- 注意: 给定的数组长度不超过 2000 并且结果一定是32位有符号整数。
数组定义
dp[i]代表以nums[i]结尾的最长递增子序列的长度,而len[i]则代表子序列的个数
状态转移
- dp[j]+1>dp[i]
当发现更长子序列的时候,刷新最长子序列的长度以及对应的个数 - dp[j]+1==dp[i]
当发现相同长度的递增子序列,我们对应的子序列个数就需要增加
初始化
将dp[i],len[i]全部置为1,因为只有一个元素也能算一个子序列
代码
class Solution {public int findNumberOfLIS(int[] nums) {int n=nums.length,max=1,res=0;int[] dp=new int[n];int[] len=new int[n];Arrays.fill(dp,1);Arrays.fill(len,1);for(int i=1;i<n;i++){for(int j=i-1;j>=0;j--){if(nums[i]>nums[j]){if(dp[j]+1>dp[i]){dp[i]=dp[j]+1;len[i]=len[j];}else if(dp[j]+1==dp[i]){len[i]+=len[j];}}} max=Math.max(dp[i],max);}for(int i=n-1;i>=0;i--)if(dp[i]==max)res+=len[i];return res;}
}
673. 最长递增子序列的个数相关推荐
- LeetCode 673. 最长递增子序列的个数
LeetCode 673. 最长递增子序列的个数 文章目录 LeetCode 673. 最长递增子序列的个数 题目描述 一.解题关键词 二.解题报告 1.思路分析 2.时间复杂度 3.代码示例 2.知 ...
- [Leetcode]673. 最长递增子序列的个数
给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 . 注意 这个数列必须是 严格 递增的. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 ...
- 112. Leetcode 673. 最长递增子序列的个数 (动态规划-子序列问题)
步骤一.确定状态: 确定dp数组及下标含义 dp[i]表示以nums[i]结尾的数组最长递增子序列的长度, count数组, count[i]记 录以nums[i]结尾的数组,最长递增子序列的个数. ...
- LeetCode 673. 最长递增子序列的个数(DP)
1. 题目 给定一个未排序的整数数组,找到最长递增子序列的个数. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, ...
- leetcode - 673. 最长递增子序列的个数
给定一个未排序的整数数组,找到最长递增子序列的个数. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7] ...
- 【LeetCode 动态规划专项】最长递增子序列的个数(673)
文章目录 1. 题目 1.1 示例 1.2 说明 1.3 提示 1.4 进阶 2. 解法一(动态规划) 2.1 分析 2.1.1 定义状态 2.1.2 初始化状态 2.1.3 状态转移 2.1.4 返 ...
- [Swift]LeetCode673. 最长递增子序列的个数 | Number of Longest Increasing Subsequence
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- 最长递增子序列的个数Python解法
给定一个未排序的整数数组,找到最长递增子序列的个数. 列: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]. # ...
- leetcode算法题-- 最长递增子序列的个数★
原题链接:https://leetcode-cn.com/problems/number-of-longest-increasing-subsequence/ 相关题目:最长上升子序列 lengths ...
最新文章
- 【Android源码剖析】(API 19)[View-----MeasureSpec]
- 组合模式 桥接模式 java_java设计模式5.组合模式、门面模式、享元模式、桥接模式...
- 它的斗争“和loser对话”短篇故事
- centos php-mysql_centOS 下安装php和mysql
- linux支持ppp网卡,linux和安卓上(ppp widget)使用3g网卡的方法
- 腾讯翻译君在线翻译怎么翻译整个文件_希腊语怎么翻译?教你两个超实用的翻译方法...
- List集合去重的常见几种方式
- WLAN无线技术基本概念(802.11a/b/g/n/ac/ax区别,频段,信道概念)
- python枚举算法流程图_python机器学习十大算法案例
- Weiss-(DSAA - in C,1.3)字谜游戏
- JDK13 Switch表达式新特性
- 酷炫cmd命令行工具——windows terminal的详细配置
- 树莓派-4-温度CPU内存硬盘状态信息
- 使用you-get批量下载B站视频
- PHP —— 一份前端开发工程师够用的PHP知识点(持续更新)
- Jquery入门指南教程
- PS某色背景改为透明
- aqistudy真气网JS逆向 + 数据采集(20220801)
- Vs2017 窗口移动vs直接卡死
- 深度学习笔记——hrnet