
小算法:
通过一次遍历找到数组中最大值出现的次数:

利用这个小算法求解这道题就会非常简单了。



参考代码:
- class Solution {
- public:
- int findNumberOfLIS(vector<int>& nums) {
- int n=nums.size();
- vector<int> len(n,1);
- auto count=len;
-
- int retcount=1;
- int retlen=1;
-
- //求最长递增子序列的长度并统计不同长度子序列的个数
- for(int i=1;i
- {
- for(int j=0;j
- {
- if(nums[j]
- {
- if(len[j]+1==len[i])
- {
- count[i]+=count[j];
- }
- else if(len[j]+1>len[i])
- {
- count[i]=count[j];
- len[i]=len[j]+1;
- }
- }
- }
- //统计最长递增子序列出现的个数
- if(len[i]>retlen)
- {
- retcount=count[i];
- retlen=len[i];
- }
- else if(len[i]==retlen)
- {
- retcount+=count[i];
- }
- }
- return retcount;
- }
- };
-
相关阅读:
云安全—kubelet攻击面
win10 安装 Langchain-Chatchat 避坑指南(2023年9月18日v0.2.4版本,包含全部下载内容!)
车载VPA形象发展史:谁是第一个吃螃蟹的人?
分布式理论须知
多版本node的安装与切换详细操作
Kubernetes:(十六)Ingress的概念和原理
bash和dash的区别(及示例)
一文详解面向自动驾驶的高精地图数据采集标注体系—景联文科技
win10通过Docker搭建LNMP环境全流程
智慧灾备解决方案-最新全套文件
-
原文地址:https://blog.csdn.net/weixin_70056514/article/details/132856742