Max Dot Product of Two Subsequences LeetCode solution in Java

1
class Solution {
2
public int maxDotProduct(int[] nums1, int[] nums2) {
3
int N = nums1.length, M = nums2.length;
4
int[][] dp = new int[N][M];
5
for (int i = 0; i < N; i++) {
6
for (int j = 0; j < M; j++) {
7
dp[i][j] = nums1[i] * nums2[j];
8
if (i > 0 && j > 0 && dp[i - 1][j - 1] > 0) {
9
dp[i][j] += dp[i - 1][j - 1];
10
}
11
if (i > 0 && dp[i - 1][j] > dp[i][j]) {
12
dp[i][j] = dp[i - 1][j];
13
}
14
if (j > 0 && dp[i][j - 1] > dp[i][j]) {
15
dp[i][j] = dp[i][j - 1];
16
}
17
}
18
}
19
return dp[N - 1][M - 1];
20
}
21
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0