小算法:
通过一次遍历找到数组中最大值出现的次数:
利用这个小算法求解这道题就会非常简单了。
参考代码:
- 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;
- }
- };
-
相关阅读:
AtCoder Beginner Contest 264(A-D)
5.4服务器编程基本框架和两种高效的事件处理模式
你真的会解决android ANR 问题吗?
面试必问的分布式锁,你懂了吗?
解决连接数据库提示:Public Key Retrieval is not allowed
mybatis使用多参数查询
3.03_python+Django+mysql实现pdf转word项目_项目部署-mod_wsgi安装配置
AI助力科研创新与效率双提升:ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写
MyBatis---初阶
海光信息科创板上市:市值1397亿 技术源于AMD授权
-
原文地址:https://blog.csdn.net/weixin_70056514/article/details/132856742