作者推荐【动态规划】C++算法312戳气球446.等差数列划分II-子序列给你一个整数数组nums,返回nums中所有等差子序列的数目。如果一个序列中至少有三个元素,并且任意两个相邻元素之差相同,则称该序列为等差序列。例如,[1,3,5,7,9]、[7,7,7,7]和[3,-1,-5,-9]都是等差序列。再例如,[1,1,2,5,7]不是等差序列。数组中的子序列是从数组中删除一些元素(也可能不删除)得到的一个序列。例如,[2,5,10]是[1,2,1,2,4,1,5,10]的一个子序列。题目数据保证答案是一个32-bit整数。示例1:输入:nums=[2,4,6,8,10]输出:7解释:所有的
1027.最长等差数列 1027. 最长等差数列题目描述:给你一个整数数组 nums,返回 nums 中最长等差子序列的长度。回想一下,nums 的子序列是一个列表 nums[i1],nums[i2],...,nums[ik] ,且 0。并且如果 seq[i+1]-seq[i]( 0)的值都相同,那么序列 seq 是等差的。 解题思路:算法思路:1.状态表⽰:对于线性dp,我们可以⽤「经验+题⽬要求」来定义状态表⽰:i.以某个位置为结尾,巴拉巴拉;ii.以某个位置为起点,巴拉巴拉。这⾥我们选择⽐较常⽤的⽅式,以某个位置为结尾,结合题⽬要求,定义⼀个状态表⽰:dp[i]表⽰:以i位置元素为结尾的