Skip to content

Commit 3287b4e

Browse files
authored
Update Readme.md
1 parent 3b9cac3 commit 3287b4e

File tree

1 file changed

+2
-2
lines changed
  • Hash/446.Arithmetic-Slices-II-Subsequence

1 file changed

+2
-2
lines changed

Hash/446.Arithmetic-Slices-II-Subsequence/Readme.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ for j= 0 to i-1
1919
```
2020
#### 解法2
2121
22-
一个等差数列,可以通过后两位元素就能唯一确定.所以另一个很常见的DP解法,就是设计状态DP[i][j]表示为以元素i,j结尾的等差数列的最大长度(或者认为是这样的等差数列的个数,两者差2而已).
22+
一个等差数列,可以通过后两位元素就能唯一确定.所以另一个很常见的DP解法,就是定义状态变量DP[i][j]表示为以元素i,j结尾的等差数列的个数.
2323
24-
我们通过i,j,查找之前是否存在一个索引k使得```A[i]*2=A[k]+A[j]```.如果找到的话那就说明```DP[i][j]+=DP[k][i]+1```注意这里为什么是+=而不是=,那是因为这样的k可能会有好几个(对应相同的A[k]值).
24+
我们通过i,j,查找之前是否存在一个索引k使得```A[i]*2=A[k]+A[j]```.如果找到的话那就说明```DP[i][j]+=DP[k][i]+1```。其中```DP[k][i]+1```的意思是:以i,j为结尾的等差数列,大部分可以由以k,i为结尾的等差数列延长而来(多加上一个A[i]而已),但还多出来的一个就是仅含有k,i,j三个元素的等差数列。另外,这里为什么是```+=```而不是```=```,那是因为这样的k可能会有好几个(对应相同的A[k]值).
2525
2626
想通过A[k]值找到k,需要提前处理,用到一个一对应多的hash表unordered_map<int,vector<int>>Map.

0 commit comments

Comments
 (0)