413. 等差数列划分 题目描述如果一个数列 至少有三个元素 并且任意两个相邻元素之差相同则称该数列为等差数列。例如[1,3,5,7,9][1,3,5,7,9][1,3,5,7,9]、[7,7,7,7][7,7,7,7][7,7,7,7]和[3,−1,−5,−9][3,-1,-5,-9][3,−1,−5,−9]都是等差数列。给你一个整数数组numsnumsnums返回数组numsnumsnums中所有为等差数组的 子数组 个数。子数组 是数组中的一个连续序列。示例 1输入nums [1,2,3,4]输出3解释nums 中有三个子等差数组[1, 2, 3]、[2, 3, 4] 和 [1,2,3,4] 自身。示例 2输入nums [1]输出0算法原理这是一个子数组问题可以用动态规划解决状态表示子数组问题的状态表示一般是以某一个位置为结尾这道题目也不例外。dp[i]dp[i]dp[i]表示以iii位置为结尾的子数组中等差数列的个数状态转移方程先看等差数列的一个性质假设[a,b,c,d][a,b,c,d][a,b,c,d]是公差为xxx的等差数列[c,d,e][c,d,e][c,d,e]是一个等差数列那么[a,b,c,d,e][a,b,c,d,e][a,b,c,d,e]也是一个公差为xxx的等差数列。根据这个性质设anums[i−2],bnums[i−1],cnums[i]a nums[i-2],b nums[i-1],c nums[i]anums[i−2],bnums[i−1],cnums[i]当b−ac−bb-a c - bb−ac−b时[a,b,c][a, b, c][a,b,c]是一个等差数列。如果以a,ba,ba,b为结尾的一个数组是等差数列那以[a,b,c][a, b, c][a,b,c]为结尾的一个数组也是等差数列。以a,ba, ba,b为结尾的数组就是以bbb结尾的数组也就是以i−1i-1i−1位置为结尾的数组所以dp[i]dp[i−1]dp[i] dp[i-1]dp[i]dp[i−1]由于以a,ba,ba,b为结尾的子数组还有[a,b][a, b][a,b]它的长度是222不会被当做等差数列但是再加上ccc[a,b,c][a,b,c][a,b,c]就是等差数列了所以还要加上这个情况dp[i]dp[i−1]1dp[i] dp[i - 1] 1dp[i]dp[i−1]1当b−a≠c−bb - a ≠ c - bb−ac−b时[a,b,c][a, b, c][a,b,c]不是一个等差数列。就算以a,ba,ba,b为结尾的所有数组都是等差数列以[a,b,c][a, b, c][a,b,c]为结尾的所有数组也不是等差数列。所以dp[i]0dp[i] 0dp[i]0初始化i0,1i 0,1i0,1时不可能有等差数列所以初始化dp[0]0dp[1]0dp[0] 0dp[1] 0dp[0]0dp[1]0返回值由于状态表示为以iii位置为结尾的子数组中等差数列的个数。所以要返回dpdpdp数组元素之和代码classSolution{public:intnumberOfArithmeticSlices(vectorintnums){intnnums.size();vectorintdp(n,0);intret0;for(inti2;in;i){intanums[i-2],bnums[i-1],cnums[i];dp[i](c-bb-a)?(dp[i-1]1):0;retdp[i];}returnret;}};

相关新闻

最新新闻

如何在3分钟内快速上手BiliTools:跨平台B站资源下载终极指南

如何在3分钟内快速上手BiliTools:跨平台B站资源下载终极指南

如何在3分钟内快速上手BiliTools:跨平台B站资源下载终极指南 【免费下载链接】BiliTools 本项目已停止维护。 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 还在为无法下载B站高清视频而烦恼吗?想要一键获取哔哩哔哩上的番剧、…

2026/7/10 19:15:06
ADS1015L与PIC18LF45K40的精密信号采集方案

ADS1015L与PIC18LF45K40的精密信号采集方案

1. 项目背景与核心需求在工业自动化、环境监测和医疗设备等领域,模拟信号的精确采集与数字化处理一直是关键环节。以温度传感器为例,其输出的微弱电压信号(如0-10mV对应-40℃~125℃)需要经过放大、滤波后,才能被微控制…

2026/7/10 19:15:06
STM32F745VG与ADS1015L的I2C接口配置与数据采集实践

STM32F745VG与ADS1015L的I2C接口配置与数据采集实践

1. 项目背景与核心需求在工业控制、医疗设备和消费电子等领域,模拟信号到数字信号的精确转换一直是关键环节。ADS1015L作为德州仪器推出的一款12位ΔΣ型模数转换器,以其低功耗、高精度和灵活的I2C接口特性,成为中小型嵌入式系统的理想选择。…

2026/7/10 19:15:06
2026年,想找AI平台优化服务机构,该选哪家?

2026年,想找AI平台优化服务机构,该选哪家?

在AI技术飞速发展的当下,AI平台已经成为众多企业获取流量、提升品牌知名度的重要阵地。然而,许多企业在AI平台上的表现却不尽如人意,存在品牌信息断层、曝光不足、获客成本高等问题。因此,选择一家专业的AI平台优化服务机构至关重…

2026/7/10 19:15:06
从零构建FOC轮腿机器人:开源DIY完全指南(500元预算版)

从零构建FOC轮腿机器人:开源DIY完全指南(500元预算版)

从零构建FOC轮腿机器人:开源DIY完全指南(500元预算版) 【免费下载链接】foc-wheel-legged-robot Open source materials for a novel structured legged robot, including mechanical design, electronic design, algorithm simulation, and …

2026/7/10 19:15:06
如何快速整理技术书籍库:3个实用技巧让Dev-Books项目更高效

如何快速整理技术书籍库:3个实用技巧让Dev-Books项目更高效

如何快速整理技术书籍库:3个实用技巧让Dev-Books项目更高效 【免费下载链接】books o armazm de livros 项目地址: https://gitcode.com/GitHub_Trending/boo/books Dev-Books项目是一个专注于开发者和编程爱好者的技术书籍资源库,汇集了数百本高…

2026/7/10 19:10:06

月新闻