Dynamic Programming21 sections · 916 units
Open in Course

LeetCode 1696 Jump Game VI - Walkthrough

DP with window constraint

dp[i]dp[i] = max score to reach index ii. From ii, can jump to [i+1,i+k][i+1, i+k]. Transition: dp[i]=nums[i]+maxj[ik,i1]dp[j]dp[i] = nums[i] + \max_{j \in [i-k, i-1]} dp[j]. Array [1,1,2,4,7,3][1, -1, -2, 4, -7, 3], k=2k = 2. dp[0]=1dp[0] = 1. dp[1]=1+dp[0]=0dp[1] = -1 + dp[0] = 0. dp[2]=2+max(dp[0],dp[1])=1dp[2] = -2 + \max(dp[0], dp[1]) = -1. dp[3]=4+max(dp[1],dp[2])=4+0=4dp[3] = 4 + \max(dp[1], dp[2]) = 4 + 0 = 4. dp[4]=7+max(dp[2],dp[3])=7+4=3dp[4] = -7 + \max(dp[2], dp[3]) = -7 + 4 = -3. dp[5]=3+max(dp[3],dp[4])=3+4=7dp[5] = 3 + \max(dp[3], dp[4]) = 3 + 4 = 7.

Answer: 7. Monotonic queue gives O(n)O(n) instead of O(nk)O(nk).