1027. 最长等差数列
- 题号:1027
- 来源:LeetCode
- 难度:中等
- 标签:
dp数组 - 语言:TypeScript
- 解法:1 个
- 作者:lmliheng
- 最近更新:2026-09-27
TypeScript · O(n^2) 时间 · O(n*1001) 空间 · 更新于 2026-09-27
dp[i][d] 记录以 i 结尾公差 d 的最长长度
typescript
/**
* @difficulty medium
* @tags dp,数组
* @time O(n^2)
* @space O(n*1001)
* @note dp[i][d] 记录以 i 结尾公差 d 的最长长度
* @1027. 最长等差数列
*/
/**
* @最长等差数列
* 中等
* @note难题
*/
let nums: number[] = [9, 4, 7, 2, 10]
// dp[i][d]表示以nums[i]结尾且公差为d的数列长度。
let n: number = nums.length
let dp: number[][] = new Array(n).fill(1).map(() => new Array(1001).fill(1))
let res: number = 1
for (let i = 1; i < n; i++) {
for (let j = 0; j < i; j++) {
let d: number = nums[i] - nums[j] + 500
dp[i][d] = dp[j][d] + 1
res = Math.max(res, dp[i][d])
}
}
export {};源码:ts/leetcode/1027. 最长等差数列.ts
在 GitHub 上查看题目所在目录:lmliheng/algorithm