Leetcode 673. 最长递增子序列的个数 C++
673最长递增子序列的个数
给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 。
注意 这个数列必须是 严格 递增的。
示例 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。
提示:
1 <= nums.length <= 2000
-106 <= nums[i] <= 106
C++代码
#include<iostream>
#include<vector>
using namespace std;
int findNumberOfLIS(vector<int>& nums) {int ans = 0 ;int n = nums.size();vector<int> dp(n+1,1);vector<int> count(n+1,1); //统计当前dp有几个来源 int maxsq = 1;if(n==0){return 0;}if(n==1){return 1;}for(int i=0;i<n;i++){count[0] = 1;for(int j = 0;j<=i;j++){//dp[all] 初始化都是1,如果是递减序列,最长递增子序列所有位子都是1 if(nums[j]<nums[i]){//nums[j]<nums[i],这个是递增子串的前提条件 /*计算最长递增子串的长度*/ if(dp[i] < dp[j]+1) {//1.i>j,但是 j位置到i 位置有一个递增序列,因此i位置的递增子序列长度需要+1dp[i]=dp[j]+1; //3.这种情况,只是产生了子序列长度的增加,路数集成j位子的就可以了count[i] = count[j];//写一个跟屁虫,用于跟踪最长子序列长度最大的是谁if(dp[i]>maxsq){maxsq = dp[i];} }else if(dp[i] == dp[j]+1){//2.说明在j位置之前,有一x个到i长度为dp[j]+1递增序列了//因此说明还有一个相同长度的递增子序列长度count[i]=count[i] + count[j];//nums[j]<nums[i],这个条件会产生递增序列// count[i] 记录了在j之前dp[j]+1长度递增序列的长度// count[j] 表示到达j位子的最长子序列长度的个数// 实现的功能就是到达i位置的每一路递增子序列有多少路 }}}}//遍历conut 表,判断条件是 maxsq =dp[i],最大子序列所在位子 for(int k=0;k<n;k++){if(maxsq ==dp[k]){//说明这里有最长序列的位置 ans = ans + count[k]; }} return ans;}int main(){vector<int> nums;std::vector<int> dnums;int arr[] = {2,2,2,2,2};int arrSize = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < arrSize; ++i) {dnums.push_back(arr[i]);}int a = findNumberOfLIS(dnums);cout<<a<<endl;return 0;
}
相关文章:
Leetcode 673. 最长递增子序列的个数 C++
673最长递增子序列的个数 给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 示例 2: 输入: …...
html用css grid实现自适应四宫格放视频
想同时播放四个本地视频: 四宫格;自式应,即放缩浏览器时,四宫格也跟着放缩;尽量填满页面(F11 浏览器全屏时可以填满整个屏幕)。 在 html 中放视频用 video 标签,参考 [1]࿱…...
【机器学习可解释性】5.SHAP值的高级使用
机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.部分依赖图4.SHAP 值5.SHAP值的高级使用 正文 汇总SHAP值以获得更详细的模型解释 总体回顾 我们从学习排列重要性和部分依赖图开始,以显示学习后的模型的内容。 然后我们学习了SHAP值来分解单个预测的组成部…...
CentOS开机自动运行jar程序实现
前面已经有一篇文章介绍jar包如何在CentOS上运行,《在linux上运行jar程序操作记录》 后来发现系统重启后不能自动运行,导致每次都要手动打开,这篇介绍如何自动开机启动运行jar程序。 一、找到JDK程序执行位置 [rootlocalhost /]# which jav…...
matlab双目标定中基线物理长度获取
在MATLAB进行双目摄像机标定时,通常会获得相机的内参,其中包括像素单位的焦距(focal length)以及物理单位的基线长度(baseline)。对于应用中的深度估计和测量,基线长度的物理单位非常重要,因为它直接影响到深度信息的准确性。有时候,您可能只能获取像素单位的焦距和棋…...
自己动手实现一个深度学习算法——二、神经网络的实现
文章目录 1. 神经网络概述1)表示2)激活函数3)sigmoid函数4)阶跃函数的实现5)sigmoid函数的实现6)sigmoid函数和阶跃函数的比较7)非线性函数8)ReLU函数 2.三层神经网络的实现1)结构2&…...
gRPC源码剖析-Builder模式
一、Builder模式 1、定义 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的的表示。 2、适用场景 当创建复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时。 当构造过程必须允许被构造的对象有不同的表示时。 说人话:…...
ARM传输数据以及移位操作
3.2.2 数据传送指令 LDR/STR指令用来在寄存器和内存之间输送数据。如果我们想要在寄存器之间传送数据,则可以使用MOV指令。MOV指令的格式如下。 MOV {cond} {s}Rd, oprand2 MOV {cond} {s}Rd, oprand2 其中,{cond}为条件指令可选项,{s}用来表…...
06、如何将对象数组里 obj 的 key 值变成动态的(即:每一个对象对应的 key 值都不同)
1、数据情况: 其一、从后端拿到的数据为: let arr [1,3,6,10,11,23,24] 其二、目标数据为: [{vlan_1: 1, value: 1}, {vlan_3: 3, value: 1}, {vlan_6: 6, value: 1}, {vlan_10: 10, value: 1}, {vlan_11: 11, value: 1}, {vlan_23: 23, v…...
ngx_http_request_s
/* 罗剑锋老师的注释参考: https://github.com/chronolaw/annotated_nginx/blob/master/nginx/src/http/ngx_http_request.h */struct ngx_http_request_s {uint32_t signature; /* "HTTP" */ngx_connection_t …...
Docker 学习路线 2:底层技术
了解驱动Docker的核心技术将让您更深入地了解Docker的工作原理,并有助于您更有效地使用该平台。 Linux容器(LXC) Linux容器(LXC)是Docker的基础。 LXC是一种轻量级的虚拟化解决方案,允许多个隔离的Linux系…...
UEFI实战——显示图片
一、准备工作 1.1 BMP格式图片 参考:BMP格式详解获取“BMP格式详解”文档里的图片,命名为Logo.bmp将Logo.bmp图片放到U盘里,U盘格式FAT32二、实例代码 2.1 代码结构 TextPkg/ ├── Display.c ├── GetFile.c ├── Test.c ├── Test.dsc ├── Test.h └── Tes…...
Ansible中的playbook
目录 一、playbook简介 二、playbook的语法 三、playbook的核心组件 四、playbook的执行命令 五、vim 设定技巧 六、基本示例 一、playbook简介 1、playbook与ad-hoc相比,是一种完全不同的运用。 2、playbook是一种简单的配置管理系统与多机器部署系统的基础…...
怎样去除视频中的杂音,保留人声部分?
怎样去除视频中的杂音,保留人声部分?这个简单嘛!两种办法可以搞定:一是进行音频降噪,把无用的杂音消除掉;二是提取人声,将要保留的人声片段提取出来。 这就将两种实用的办公都分享出来…...
基于Qt QTreeView|QTreeWidget控件使用简单版
头文件解析: 这是一个C++代码文件,定义了一个名为MainWindow的类。以下是对每一句的详细解释: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H ``` 这是一个条件编译指令,用于避免头文件的重复包含。`MAINWINDOW_H`是一个宏定义,用于唯一标识这个头文件。 ```cpp #…...
edge浏览器的隐藏功能
1. edge://version 查看版本信息 2. edge://flags 特性界面 具体到某一特性:edge://flags/#overlay-scrollbars 3. edge://settings设置界面 详情可参考chrome: 4. edge://extensions 扩展程序页面 5. edge://net-internals 网络事件信息 6. edge://component…...
安卓抓包之小黄鸟
下载安装 下载地址: https://download.csdn.net/download/yijianxiangde100/88496463 安装apk 即可。 证书配置:...
Django中的FBV和CBV
一、两者的区别 1、在我们日常学习Django中,都是用的FBV(function base views)方式,就是在视图中用函数处理各种请求。而CBV(class base view)则是通过类来处理请求。 2、Python是一个面向对象的编程语言…...
信息泄露--
大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院(大唐电信科技产业集团)控股的的高科技企业,大唐电信已形成集成电路设计、软件与应用、终端设计、移动互联网四大产业板块。 大唐电信AC集中管理平台存在弱口令及敏感信息泄漏漏…...
C#WPF文本格式化模式实例
本文演示C#WPF文本格式化模式实例 WPF 文本渲染优缺点 WPF中的文本渲染和旧式的基于 GDI的应用程序的文本染有很大区别。很大一部分区 别是由于 WPF 的设备无关显示系统造成的,但 WPF 中的文本染也得到了显著增强,能更清晰地显示文本,在 LCD 监视器上尤其如此。 然而,W…...
别再只会画矩形了!用Leaflet+L.geoJSON搞定复杂行政区遮罩(含飞地处理)
突破Leaflet遮罩技术瓶颈:复杂行政区与飞地处理的终极方案 当我们面对真实世界中的行政区划数据时,理想化的矩形遮罩显得力不从心。中国行政区划的复杂性——飞地、嵌套洞、不规则边界——要求开发者掌握更高级的地图遮罩技术。本文将带您深入Leaflet的L…...
AI人工智能行业的发展:从机器学习到深度学习的演变历程
在数字化浪潮席卷全球的当下,人工智能(AI)已然成为推动各行业变革的核心力量。对于软件测试从业者而言,深入了解AI从机器学习到深度学习的演变历程,不仅能把握技术发展脉络,更能为测试工作的智能化转型提供…...
终极指南:WinDiskWriter - 简单快速制作Windows启动盘的Mac神器
终极指南:WinDiskWriter - 简单快速制作Windows启动盘的Mac神器 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI &…...
希捷ST20000NM007D深度评测:20TB企业级硬盘,兼顾容量与稳定的实用之选
在企业存储领域,“容量”与“稳定”始终是核心诉求。随着大数据、云存储、边缘计算的快速发展,企业对存储设备的要求愈发严苛——既需要足够大的空间承载海量数据,又要保证724小时不间断运行的稳定性,同时还要控制功耗与运营成本。…...
SubAgent 进阶:LLM 策略、工具借用与 Skill 嵌套
标签:Java SubAgent LLM策略 llmFactory allowedTools Skill嵌套 j-langchain 前置阅读:SubAgent 基础:拥有自主工具的子代理 适合人群:已掌握 SubAgent 基础用法,希望灵活控制模型选择、工具权限与多层嵌套的 Java 开…...
“八股文”已死?2026技术校招面试官亲述:我们现在只问这三个真实项目题
上个月公司校招,我坐在面试间里,对面是一个985硕士。简历漂亮:GPA前10%,两段大厂实习,技能栏写满了Spring Cloud、Kafka、Redis。 我问了第一个问题:“你简历上写做过秒杀系统,那我想知道&#…...
保姆级教程:将训练好的YOLOv5s模型(PyTorch 1.7)打包成安卓/鸿蒙APP
从YOLOv5模型到移动端应用:全流程实战指南 1. 环境准备与模型导出 在开始将YOLOv5模型部署到移动端之前,确保你的开发环境已经准备就绪。对于PyTorch 1.7用户,需要特别注意版本兼容性问题。以下是推荐的环境配置: 操作系统&#x…...
ZYNQ启动全解析:从BootROM到你的App,SD卡与QSPI Flash烧录究竟差在哪?
ZYNQ启动全解析:从BootROM到你的App,SD卡与QSPI Flash烧录究竟差在哪? 当一块ZYNQ开发板静静躺在桌面上,按下电源键的瞬间,芯片内部究竟发生了什么?为什么有的工程师选择SD卡启动,而另一些则坚…...
3步掌握:如何用 iztro 实现紫微斗数自动化排盘
3步掌握:如何用 iztro 实现紫微斗数自动化排盘 【免费下载链接】iztro ⭐This is a lightweight kit for generating astrolabes for Zi Wei Dou Shu (The Purple Star Astrology), an ancient Chinese astrology. It allows you to obtain your horoscope and pers…...
KaTrain围棋AI训练终极指南:5步从入门到精通
KaTrain围棋AI训练终极指南:5步从入门到精通 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain 想要快速提升围棋水平却找不到合适的训练方法?KaTrain作为一款…...
