[C国演义] 第十八章
第十八章
- 最长斐波那契子序列的长度
- 最长等差数列
- 等差序列划分II - 子序列
最长斐波那契子序列的长度
力扣链接

- 子序列 ⇒ dp[i] — —
以 arr[i] 结尾的所有子序列中, 斐波那契子序列的最长长度 - 子序列 ⇒ 状态转移方程 — —
根据最后一个位置的组成来划分


- 初始化 — — 根据状态转移方程, 全都初始化为
2 - 遍历顺序 — — 根据状态转移方程,
从前往后 - 返回结果 — — 返回dp表中的最大值, 记作res; 如果res < 3, 那就返回0, 如果res > 3, 那就返回res
class Solution {
public:int lenLongestFibSubseq(vector<int>& arr) {int n = arr.size();// 建表 + 初始化vector<vector<int>> dp(n, vector<int>(n, 2));// 记录返回结果int res = 2;// 优化unordered_map<int, int> hash; // <数组元素, 下标>for(int i = 0; i < n; i++){hash[arr[i]] = i;}// 填表for(int j = 2; j < n; j++) // 最后一个元素{for(int i = 1; i < j; i++) // 倒数第二个元素{int target = arr[j] - arr[i]; // 第一个元素// 斐波那契数列 -- 递增的if(target < arr[i] && hash.count(target)){dp[i][j] = dp[hash[target]][i] + 1;}res = max(res, dp[i][j]);}}// 返回结果return res < 3 ? 0 : res;}
};

最长等差数列
力扣链接

-
子序列 ⇒ dp[i]的含义:
dp[i]的含义: 以nums[i] 为结尾的所有子序列中, 等差子序列的最长长度 -
子序列 ⇒ 状态转移方程 :


-
初识化 :
都初始化为 2
🗨️dp[0][0] 也 初始化为 2? -

-
遍历顺序 : 根据
优化, 我们采取固定第二个元素, 再枚举最后一个元素的遍历顺序 -
返回结果 :
返回dp表中的最大值
class Solution {
public:int longestArithSeqLength(vector<int>& nums) {int n = nums.size();// 建表 + 初始化vector<vector<int>> dp(n, vector<int>(n, 2));// 优化unordered_map<int, int> hash; // <数组元素, 下标>hash[nums[0]] = 0;int res = 2;// 先固定倒数第二个元素,在枚举最后一个元素 && 边dp边插入hash// -- 有利于找到离i最近的一个targetfor(int i = 1; i < n; i++) // 先固定倒数第二个元素{for(int j = i + 1; j < n; j++) // 枚举最后一个元素{int target = 2 * nums[i] - nums[j]; // 目标的第一个元素if(hash.count(target)) // 如果存在, 更新dp[i][j]{dp[i][j] = dp[hash[target]][i] + 1;}res = max(res, dp[i][j]);}// 依次插入hash表中hash[nums[i]] = i;}return res;}
};

等差序列划分II - 子序列
力扣链接

- 子序列 ⇒ dp[i] :
以nums[i] 为结尾的所有子序列中, 等差子序列的最大数目 - 子序列 ⇒ 状态转移方程 :
根据最后一个位置划分



- 初始化 :
全都初始化为 0 - 遍历顺序 :
根据优化 ⇒ 先固定倒数第二个元素, 再枚举最后一个元素 - 返回结果 :
累加dp表
class Solution {
public:int numberOfArithmeticSlices(vector<int>& nums) {int n = nums.size();// 建表 + 初始化vector<vector<int>> dp(n, vector<int>(n, 0));// 优化// 由于前面存在多个target && 我们要全部累加起来// --> 所以, 用一个vector来接收一下下标unordered_map<long long int, vector<int>> hash; // <数组元素, 下标>hash[nums[0]].push_back(0);int res = 0;// 先固定倒数第二个元素,在枚举最后一个元素 && 边dp边插入hashfor(int i = 1; i < n; i++) // 先固定倒数第二个元素{for(int j = i + 1; j < n; j++) // 枚举最后一个元素{long long int target = (long long int ) 2 * nums[i] - nums[j]; // 目标的第一个元素if(hash.count(target)) // 如果存在, 更新dp[i][j]{// 这里的 k 都是在合理区间内的, 全部累加for(auto k : hash[target]){// 全部都累加起来dp[i][j] += dp[k][i] + 1;}}res += dp[i][j];}// 依次插入hash表中hash[nums[i]].push_back(i);}return res;}
};

宣室求贤访逐臣,贾生才调更无伦。
可怜夜半虚前席,不问苍生问鬼神。
— — 李商隐《贾谊》
相关文章:
[C国演义] 第十八章
第十八章 最长斐波那契子序列的长度最长等差数列等差序列划分II - 子序列 最长斐波那契子序列的长度 力扣链接 子序列 ⇒ dp[i] — — 以 arr[i] 结尾的所有子序列中, 斐波那契子序列的最长长度子序列 ⇒ 状态转移方程 — — 根据最后一个位置的组成来划分 初始化 — — 根…...
发送失败的RocktMQ消息,你遇到过吗?
背景 需要通过flink同时向测试和线上的RocketMQ中写入数据 现象 在程序中分别创建了两个MqProducer,设置了不同的nameServerAddr,分别调用不同的producer向不同环境发消息,返回发送成功,但是在线上MQ中却查不到数据࿰…...
Unity中全局光照GI的总结
文章目录 前言一、在编写Shader时,有一些隐蔽的Bug不会直接报错,我们需要编译一下让它显示出来,方便修改我们选择我们的Shader,点击编译并且展示编译后的Shader后的内容,隐蔽的Bug就会暴露出来了。 二、我们大概回顾一…...
毫米波雷达技术在自动驾驶中的关键作用:安全、精准、无可替代
自动驾驶技术正以前所未有的速度不断演进,而其中的关键之一就是毫米波雷达技术。作为自动驾驶系统中的核心感知器件之一,毫米波雷达在保障车辆安全、实现精准定位和应对复杂环境中发挥着不可替代的作用。本文将深入探讨毫米波雷达技术在自动驾驶中的关键…...
Jetson平台180度鱼眼相机畸变校正调试记录
1.需求说明 由于使用180度GMSL鱼眼相机,畸变很大; 如需算法使用,必须进行畸变校正 2. 硬件说明 相机: 森云 SG2-AR0233-5300-GMSL2-190H 主板: Jetson NX 3. opencv畸变矫正处理 3.1 获取内参系数 现在森云相机可以直接读取内部flash获取内参系数 3.2 畸变处理 …...
axios请求的问题
本来不想记录,但是实在没有办法,因为总是会出现post请求,后台接收不到数据的情况,还是记录一下如何的解决的比较好。 但是我使用export const addPsiPurOrder data > request.post(/psi/psiPurOrder/add, data); 下面是封装的代码。后台接…...
【pandas刷题系列】Leetcode Problem: [595. 大的国家]
Problem: 595. 大的国家 文章目录 思路解题方法复杂度Code 思路 筛选出对应的数据,然后将不需要的列去除 解题方法 筛选出对应的数据,然后将不需要的列去除 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) Code import pandas a…...
【打卡】牛客网:BM46 最小的K个数
资料: 1. 排序 sort(name.begin(),name.end()); //升序 sort(name.rbegin(),name.rend()); //降序 【C】vector数组排序_vector排序_比奇堡咻飞兜的博客-CSDN博客 2. 把v2的部分值赋给v1 v1.assign(v2.begin(), v2.end()); // 用新元素替换vector 中的元素。…...
Android各类View触摸监听器失效
在XML布局中出现重叠的View,位置靠后定义的View会覆盖住位置靠前的View;即靠后的View会拦截触碰事件导致靠前的View无法收到触碰事件,无法触发监听器。 //例.<?xml version"1.0" encoding"utf-8"?> <android…...
未整理的知识链接
【scala】下划线用法总结 【scala】下划线用法总结_scala 下划线-CSDN博客 Spark Sql Row 的解析 Spark Sql Row 的解析 - 简书 spark dataframe foreach spark dataframe foreach_mob64ca12f0cf8f的技术博客_51CTO博客 spark- Dataframe基本操作-查询 https://blog.csdn.n…...
【2011年数据结构真题】
41题 41题解答: (1)图 G 的邻接矩阵 A 如下所示: 由题意得,A为上三角矩阵,在上三角矩阵A[6][6]中,第1行至第5行主对角线上方的元素个数分别为5, 4, 3, 2, 1 用 “ 平移” 的思想,…...
【科研绘图】MacOS上的LaTeX公式插入工具——LaTeXiT
在Mac上经常用OmniGraffle绘图,但是有个致命缺点是没办法插入LaTeX公式,很头疼。之前有尝试用Pages文稿插入公式,但是调字体和颜色很麻烦。并且,PPT中的公式插入感觉也不太好看。 偶然机会了解到了LaTeXiT这个工具,可…...
仓库自动化中的RFID技术的应用浅谈
仓库自动化与RFID技术的结合代表着现代供应链管理的一个重要革新。这两者的协同作用能够显著提升仓储效率、降低成本、增强库存管理、提高货物跟踪的准确性,并且使仓库操作更加智能化。 仓库自动化是一种通过应用自动化技术和系统来管理和优化仓库操作的方法。这种…...
容器网络-Underlay和Overlay
一、主机网络 前面讲了容器内部网络,但是容器最终是要部署在主机上,跨主机间的网络访问又是怎么样的,跨主机网络主要有两种方案。 二、 Underlay 使用现有底层网络,为每一个容器配置可路由的网络IP。也就是说容器网络和主机网络…...
基于FPGA的PCIe-Aurora 8/10音频数据协议转换系统设计阅读笔记
文章可知网下载阅读,该论文设计了一种 PC 到光纤模块(基于Aurora的光纤传输)的数据通路,成功完成了Aurora 以及 DDR 等模块的功能验证。 学习内容: 本次主要学习了Pcie高速串行总线协议、Aurora高速串行总线协议、DDR相…...
stm32控制舵机sg90
一、sg90简介 首先介绍说一下什么是舵机。舵机是一种位置(角度)伺服的驱动器。适用于一些需要角度不断变化的,可以保持的控制系统。sg90就是舵机的一种。 舵机的工作原理比较简单。舵机内部有一个基准电压,单片机产生的PWM信号通…...
state 和 props 有什么区别?
一、state 一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是 state,一般在 constructor 中初始化 当需要修改里面的值的状态需要通过调用 setState 来改变,从而达到更新组件内部数据的作用,并且重新调用组件 r…...
Unity 获取桌面路径的方法
在Unity中,当我们碰到以下一些情况时,可能需要桌面的路径。 1、文件操作:如果我们想在游戏中保存或读取文件到桌面,就可以使用桌面路径来指定文件的位置。 2、调试信息:在开发过程中,我们往往会将一些调试…...
基于SSM的考研图书电子商务平台的设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…...
信息系统“好用”的标准探讨
数字化转型建设的关键不在建设信息系统。这是为了避免走信息化建设的老路——业务和信息化两张皮,寄希望信息系统解决业务问题。在数字化转型建设中,信息系统仍然是重要抓手和显性成果,是企业业务和数据的承载平台,也是IT厂商向客…...
实时反馈断层、特征偏移误判、推理链路静默降级……AI灰度发布6大暗礁(含可观测性埋点配置清单)
第一章:AI原生软件研发灰度发布策略设计 2026奇点智能技术大会(https://ml-summit.org) AI原生软件具备模型动态加载、推理路径可编程、反馈闭环实时驱动等特性,其灰度发布不能简单复用传统微服务的流量切分逻辑,而需耦合模型版本、特征服务…...
Draw.io电子工程绘图库终极指南:三步构建专业电路图
Draw.io电子工程绘图库终极指南:三步构建专业电路图 【免费下载链接】Draw-io-ECE Custom-made draw.io-shapes - in the form of an importable library - for drawing circuits and conceptual drawings in draw.io. 项目地址: https://gitcode.com/gh_mirrors/…...
HY-Motion 1.0详细步骤:从HuggingFace下载→模型加载→推理→FBX导出全链路
HY-Motion 1.0详细步骤:从HuggingFace下载→模型加载→推理→FBX导出全链路 想用一句话就让3D角色动起来吗?HY-Motion 1.0让这个想法变成了现实。这是一个能听懂你文字描述,然后生成高质量3D人体动作的模型。无论是“一个人在做深蹲”还是“…...
ROFL播放器:英雄联盟回放文件的终极管理工具
ROFL播放器:英雄联盟回放文件的终极管理工具 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 还在为英雄联盟回放文件无法播放…...
解决Bootstrap项目中日期时间选择难题:bootstrap-datetimepicker深度集成指南
解决Bootstrap项目中日期时间选择难题:bootstrap-datetimepicker深度集成指南 【免费下载链接】bootstrap-datetimepicker 项目地址: https://gitcode.com/gh_mirrors/boo/bootstrap-datetimepicker 在Bootstrap项目开发中,日期时间选择器是表单…...
终极RPG Maker插件解决方案:如何快速提升你的游戏开发效率
终极RPG Maker插件解决方案:如何快速提升你的游戏开发效率 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV 你是否在RPG Maker开发过程中遇到过这些令人头疼的问题&#…...
Janus-Pro-7B企业知识管理:基于AI的文档智能检索与摘要
Janus-Pro-7B企业知识管理:基于AI的文档智能检索与摘要 你是不是也遇到过这种情况?公司服务器里堆满了产品手册、项目报告、会议纪要,想找个资料得翻半天,最后还不一定能找到。或者,一份几十页的技术文档摆在面前&…...
告别手动同步!用Karmada实现跨集群应用一键分发(附PropagationPolicy配置详解)
告别手动同步!用Karmada实现跨集群应用一键分发(附PropagationPolicy配置详解) 在云原生技术快速发展的今天,企业往往需要管理分布在多个地域、不同环境的Kubernetes集群。传统的手工同步方式不仅效率低下,还容易出错。…...
Matplotlib数据可视化实战:从基础图表到高级定制
1. Matplotlib入门:为什么选择这个可视化工具? 第一次接触数据可视化时,我被各种工具搞得眼花缭乱。Excel、Tableau、Power BI...直到遇见Matplotlib,才发现这个Python库才是数据分析师的"瑞士军刀"。它最大的优势就是…...
第十六届 蓝桥杯嵌入式设计与开发 省赛 客观题
不定项选择,共10题 01.关于STM32时钟源的说法,错误的是() A.HSI精度高于HSE B.LSE常用于RTC模块 C.PLL可将外部或内部时钟倍频 D.切换系统时钟源或修改主频时,必须先进入停机模式 答案:AD A:HSI(内部高速时钟ÿ…...
