当前位置: 首页 > news >正文

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 &#xff0c; 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列&#xff0c;分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 示例 2: 输入: …...

html用css grid实现自适应四宫格放视频

想同时播放四个本地视频&#xff1a; 四宫格&#xff1b;自式应&#xff0c;即放缩浏览器时&#xff0c;四宫格也跟着放缩&#xff1b;尽量填满页面&#xff08;F11 浏览器全屏时可以填满整个屏幕&#xff09;。 在 html 中放视频用 video 标签&#xff0c;参考 [1]&#xff1…...

【机器学习可解释性】5.SHAP值的高级使用

机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.部分依赖图4.SHAP 值5.SHAP值的高级使用 正文 汇总SHAP值以获得更详细的模型解释 总体回顾 我们从学习排列重要性和部分依赖图开始&#xff0c;以显示学习后的模型的内容。 然后我们学习了SHAP值来分解单个预测的组成部…...

CentOS开机自动运行jar程序实现

前面已经有一篇文章介绍jar包如何在CentOS上运行&#xff0c;《在linux上运行jar程序操作记录》 后来发现系统重启后不能自动运行&#xff0c;导致每次都要手动打开&#xff0c;这篇介绍如何自动开机启动运行jar程序。 一、找到JDK程序执行位置 [rootlocalhost /]# which jav…...

matlab双目标定中基线物理长度获取

在MATLAB进行双目摄像机标定时,通常会获得相机的内参,其中包括像素单位的焦距(focal length)以及物理单位的基线长度(baseline)。对于应用中的深度估计和测量,基线长度的物理单位非常重要,因为它直接影响到深度信息的准确性。有时候,您可能只能获取像素单位的焦距和棋…...

自己动手实现一个深度学习算法——二、神经网络的实现

文章目录 1. 神经网络概述1&#xff09;表示2&#xff09;激活函数3&#xff09;sigmoid函数4&#xff09;阶跃函数的实现5&#xff09;sigmoid函数的实现6)sigmoid函数和阶跃函数的比较7&#xff09;非线性函数8&#xff09;ReLU函数 2.三层神经网络的实现1&#xff09;结构2&…...

gRPC源码剖析-Builder模式

一、Builder模式 1、定义 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的的表示。 2、适用场景 当创建复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时。 当构造过程必须允许被构造的对象有不同的表示时。 说人话&#xff1a…...

ARM传输数据以及移位操作

3.2.2 数据传送指令 LDR/STR指令用来在寄存器和内存之间输送数据。如果我们想要在寄存器之间传送数据&#xff0c;则可以使用MOV指令。MOV指令的格式如下。 MOV {cond} {s}Rd, oprand2 MOV {cond} {s}Rd, oprand2 其中&#xff0c;{cond}为条件指令可选项&#xff0c;{s}用来表…...

06、如何将对象数组里 obj 的 key 值变成动态的(即:每一个对象对应的 key 值都不同)

1、数据情况&#xff1a; 其一、从后端拿到的数据为&#xff1a; let arr [1,3,6,10,11,23,24] 其二、目标数据为&#xff1a; [{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

/* 罗剑锋老师的注释参考&#xff1a; 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的工作原理&#xff0c;并有助于您更有效地使用该平台。 Linux容器&#xff08;LXC&#xff09; Linux容器&#xff08;LXC&#xff09;是Docker的基础。 LXC是一种轻量级的虚拟化解决方案&#xff0c;允许多个隔离的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相比&#xff0c;是一种完全不同的运用。 2、playbook是一种简单的配置管理系统与多机器部署系统的基础…...

怎样去除视频中的杂音,保留人声部分?

怎样去除视频中的杂音&#xff0c;保留人声部分&#xff1f;这个简单嘛&#xff01;两种办法可以搞定&#xff1a;一是进行音频降噪&#xff0c;把无用的杂音消除掉&#xff1b;二是提取人声&#xff0c;将要保留的人声片段提取出来。 这就将两种实用的办公都分享出来&#xf…...

基于Qt QTreeView|QTreeWidget控件使用简单版

头文件解析: 这是一个C++代码文件,定义了一个名为MainWindow的类。以下是对每一句的详细解释: ```cpp #ifndef MAINWINDOW_H #define MAINWINDOW_H ``` 这是一个条件编译指令,用于避免头文件的重复包含。`MAINWINDOW_H`是一个宏定义,用于唯一标识这个头文件。 ```cpp #…...

edge浏览器的隐藏功能

1. edge://version 查看版本信息 2. edge://flags 特性界面 具体到某一特性&#xff1a;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中&#xff0c;都是用的FBV&#xff08;function base views&#xff09;方式&#xff0c;就是在视图中用函数处理各种请求。而CBV&#xff08;class base view&#xff09;则是通过类来处理请求。 2、Python是一个面向对象的编程语言…...

信息泄露--

大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院&#xff08;大唐电信科技产业集团&#xff09;控股的的高科技企业&#xff0c;大唐电信已形成集成电路设计、软件与应用、终端设计、移动互联网四大产业板块。 大唐电信AC集中管理平台存在弱口令及敏感信息泄漏漏…...

C#WPF文本格式化模式实例

本文演示C#WPF文本格式化模式实例 WPF 文本渲染优缺点 WPF中的文本渲染和旧式的基于 GDI的应用程序的文本染有很大区别。很大一部分区 别是由于 WPF 的设备无关显示系统造成的,但 WPF 中的文本染也得到了显著增强,能更清晰地显示文本,在 LCD 监视器上尤其如此。 然而,W…...

别再只盯着芯片手册了!用CC6902SO搭建电流检测电路,这些实测数据和避坑经验更重要

别再只盯着芯片手册了&#xff01;用CC6902SO搭建电流检测电路&#xff0c;这些实测数据和避坑经验更重要 第一次用CC6902SO搭建电流检测电路时&#xff0c;我完全按照芯片手册推荐的电路设计&#xff0c;结果发现实际输出和理论值差了将近15%。这让我意识到&#xff0c;真正影…...

浦语灵笔2.5-7B精彩案例分享:手写体题目识别+解题逻辑生成全过程

浦语灵笔2.5-7B精彩案例分享&#xff1a;手写体题目识别解题逻辑生成全过程 1. 引言&#xff1a;当AI“看懂”你的手写作业 想象一下这个场景&#xff1a;你正在辅导孩子做数学作业&#xff0c;他遇到一道难题&#xff0c;不仅把题目抄了下来&#xff0c;还在旁边画了辅助线、…...

Phi-4-mini-reasoning真实案例:教育机构自动批题与答案生成应用

Phi-4-mini-reasoning真实案例&#xff1a;教育机构自动批题与答案生成应用 1. 教育场景中的智能批改需求 在教育培训行业&#xff0c;教师每天需要花费大量时间批改作业和试卷。传统的人工批改方式存在几个明显痛点&#xff1a; 时间成本高&#xff1a;一位数学老师批改50份…...

【超详细】前端必备:从0到1吃透JavaScript闭包,附真实项目避坑指南

文章目录第一章 从“变量生命周期”开始&#xff0c;重新理解作用域链1.1 一个让新手困惑的面试题&#xff1a;循环中的var与let1.2 作用域链的形成&#xff1a;函数定义位置决定了一切第二章 闭包的工程价值&#xff1a;从封装到模块化2.1 数据私有化&#xff1a;用闭包实现真…...

FLUX.2-klein-base-9b-nvfp4进阶:利用LSTM时序理解优化视频连贯风格转换

FLUX.2-klein-base-9b-nvfp4进阶&#xff1a;利用LSTM时序理解优化视频连贯风格转换 最近在折腾视频风格转换时&#xff0c;发现一个挺让人头疼的问题&#xff1a;用那些单帧处理的模型&#xff0c;出来的视频总是一闪一闪的&#xff0c;风格也忽明忽暗&#xff0c;看着特别不…...

GME-Qwen2-VL-2B-Instruct代码实例:自定义指令前缀‘Find an image that matches...’注入方法

GME-Qwen2-VL-2B-Instruct代码实例&#xff1a;自定义指令前缀‘Find an image that matches...’注入方法 1. 项目背景与价值 在实际的图文匹配场景中&#xff0c;我们经常需要判断一张图片与多个文本描述之间的匹配程度。GME-Qwen2-VL-2B-Instruct作为一个强大的多模态模型…...

丹青识画GPU算力优化部署教程:显存占用降低40%实操

丹青识画GPU算力优化部署教程&#xff1a;显存占用降低40%实操 1. 引言&#xff1a;当艺术邂逅算力&#xff0c;如何优雅地“瘦身”&#xff1f; 想象一下&#xff0c;你刚部署好一个能看懂画作、还能用书法题诗的AI应用——“丹青识画”。它融合了前沿的多模态AI与东方美学&…...

intv_ai_mk11开源模型教程:7B Llama架构对话机器人在GPU云上的安全沙箱实践

intv_ai_mk11开源模型教程&#xff1a;7B Llama架构对话机器人在GPU云上的安全沙箱实践 1. 什么是intv_ai_mk11对话机器人 intv_ai_mk11是一个基于7B参数Llama架构的AI对话助手&#xff0c;专门设计运行在GPU云服务器环境中。这个模型经过优化&#xff0c;能够在保持较高响应…...

2026年Java面试最常被问的1000道题目及参考答案

Java学到什么程度可以面试工作&#xff1f; 要达到能够面试Java开发工作的水平&#xff0c;需要掌握以下几个方面的知识和技能&#xff1a; 1. 基础扎实&#xff1a;熟悉Java语法、面向对象编程概念、异常处理、I/O流等基础知识。这是所有Java开发者必备的基础&#xff0c;也…...

如何快速上手AutoGPT-Next-Web:5分钟搭建专属AI助手

如何快速上手AutoGPT-Next-Web&#xff1a;5分钟搭建专属AI助手 【免费下载链接】AutoGPT-Next-Web &#x1f916; Assemble, configure, and deploy autonomous AI Agents in your browser.一键免费部署你的私人AutoGPT 网页应用 项目地址: https://gitcode.com/gh_mirrors/…...