package
0.0.0-20241220224003-b7cf03a90b2b
Repository: https://github.com/szhou12/leetcode-go.git
Documentation: pkg.go.dev
# README
3152. Special Array II
Solution idea
DP
- 思路类似于prefix sum。从左到右撸一遍
nums[]
,累计沿途遇到的parity的个数. - Dynamic Programming:
dp[i] :=
number of dis-parity pairs ending atnums[i]
(dis-parity means a pair of adjacent elementsdp[i]
anddp[i-1]
are both odd or both even).- Base case:
dp[0] = 0
- Recurrence:
dp[i] = dp[i-1] + (nums[i] % 2 == nums[i-1] % 2)
- 判断一个subarray
[l, r]
是否"special", 只需要判断dp[r] - dp[l] == 0
即可。
Time complexity = $O(n)$