您的位置:首页 > 其它

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

2018-05-24 08:51 232 查看

【题目】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)。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: