Skip to content

Commit

Permalink
Update Readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
wisdompeak authored Mar 21, 2020
1 parent 3b9cac3 commit 3287b4e
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Hash/446.Arithmetic-Slices-II-Subsequence/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ for j= 0 to i-1
```
#### 解法2
一个等差数列,可以通过后两位元素就能唯一确定.所以另一个很常见的DP解法,就是设计状态DP[i][j]表示为以元素i,j结尾的等差数列的最大长度(或者认为是这样的等差数列的个数,两者差2而已).
一个等差数列,可以通过后两位元素就能唯一确定.所以另一个很常见的DP解法,就是定义状态变量DP[i][j]表示为以元素i,j结尾的等差数列的个数.
我们通过i,j,查找之前是否存在一个索引k使得```A[i]*2=A[k]+A[j]```.如果找到的话那就说明```DP[i][j]+=DP[k][i]+1```注意这里为什么是+=而不是=,那是因为这样的k可能会有好几个(对应相同的A[k]值).
我们通过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]值).
想通过A[k]值找到k,需要提前处理,用到一个一对应多的hash表unordered_map<int,vector<int>>Map.

0 comments on commit 3287b4e

Please sign in to comment.