Max Dot Product of Two Subsequences LeetCode solution in Python
1# Runtime: 435 ms (Top 93.00%) | Memory: 13.8 MB (Top 100.00%)2class Solution:3def maxDotProduct(self, A, B):4dp = [float("-inf")] * (len(B) + 1)5for i in range(len(A)):6prev = float("-inf")7for j in range(len(B)):8product = A[i] * B[j]9prev, dp[j + 1] = dp[j + 1], max(10dp[j + 1], dp[j], product, prev + product11)12return dp[-1]