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

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



参考代码:
- 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;
- }
- };
-
相关阅读:
Yolov8小目标检测(26):多尺度空洞注意力(MSDA) | 中科院一区顶刊 DilateFormer 2023.9
【ROS2原理9】 QoS - 截止日期、活跃度和寿命
SpringBoot的测试
极客蒂姆·斯威尼:用虚幻引擎,修补真实世界(下) | 人物志048
国际油气公司数字化转型探析
Debian 12.5 一键安装 Oracle 19C 单机
超市微信小程序是怎么做的
外卖霸王餐系统 美团试吃系统-代理系统
腾讯云阿里云云服务器 Linux 操作系统 BT 宝塔面板快速建站教程
【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十)
-
原文地址:https://blog.csdn.net/weixin_70056514/article/details/132856742