【51Nod】1055 最长等差数列 动态规划

【题目】1055 最长等差数列
【题意】给定大小为n的互不不同正整数集合,求最长等差数列的长度。\(n \leq 10000\)
【算法】动态规划
两个数之间的差是非常重要的信息,设\(f_{i,j}\)表示以i和j开头的最长等差数列长度,初始化为2,那么:

\[f_{i,j}=f_{j,k}+1 \ \ , \ \ |A_i-A_j|=|A_j-A_k|\]

怎么快速找i,j,k?从后往前枚举j,然后双指针i和k向两边移动判断即可。
复杂度\(O(n^2)\)
注意:这题卡时间和空间,f数组必须用short int来存储(2 Byte,32767)。

转载于:https://www.cnblogs.com/onioncyc/p/9081001.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值