Skip to content

Commit 3b9cac3

Browse files
authored
Update Readme.md
1 parent 42ffb24 commit 3b9cac3

File tree

1 file changed

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

1 file changed

+1
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
搜索不成的话,DP是个很常规的替代方案.考虑到本题是求方案的数量,所以DP解法的嫌疑就更大了.最常见的DP套路,就是考察待求的状态量```DP[i]```与之前的状态量```DP[j]```之间的推导关系,这里的```DP[i]```不妨就设计为题意要求的以元素```j```结尾的的等差数列的个数.
88

9-
如果```i```是等差数列的最后一个,那么它之前的一个元素是什么呢?那么```j=0~i-1```都是有可能的,只要元素```j```是某个相同公差的等差数列的结尾元素.如果是的话,显然```DP[i]+=DP[j]```.由此,我们看到一个重要的因素,那就是公差```diff```.也就是说,判断```j```是否和```i```构成等差数列的条件,就是先计算```diff=A[j]-A[i]```,然后再考察```j```是否为一个公差为```diff```的等差数列的尾项.于是我们还需要在DP数组中给A的每个元素开辟一个Hash,用来存储它所涉及的公差.
9+
如果```i```是等差数列的最后一个,那么它之前的一个元素是什么呢?那么```j=0~i-1```都是有可能的,只要元素```j```是某个相同公差的等差数列的结尾元素.如果是的话,显然```DP[i]+=DP[j]```.由此,我们看到一个重要的因素,那就是公差```diff```.也就是说,判断```j```是否和```i```构成等差数列的条件,就是先计算```diff=A[j]-A[i]```,然后再考察```j```是否为一个公差为```diff```的等差数列的尾项.于是我们还需要在DP数组中给A的每个元素开辟一个Hash,用来存储它所涉及的公差.
1010

1111
核心代码如下:
1212
```cpp

0 commit comments

Comments
 (0)