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

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



参考代码:
- 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;
- }
- };
-
相关阅读:
40 个 SpringBoot 常用注解让开发加速
K8S知识点(三)
laravel引入element-ui后,blade模板中使用elementui时,事件未生效问题(下载element-ui到本地直接引入项目)
MySQL函数与控制结构
飞天诚信:CRM与战略同行,管理精度提升30%
【JAVA程序设计】基于SSM的电影院在线购票系统-沙箱支付
1.3 - 码制
App自动化测试持续集成效率提高50%
Direct3D网格(二)
AWD平台搭建及遇到的问题分析
-
原文地址:https://blog.csdn.net/weixin_70056514/article/details/132856742