Skip to content

Commit 7f009b3

Browse files
committed
Create 1458.两个子序列的最大点积.js
1 parent 89df16a commit 7f009b3

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @param {number[]} nums1
3+
* @param {number[]} nums2
4+
* @return {number}
5+
*/
6+
var maxDotProduct = function(nums1, nums2) {
7+
const dp = [];
8+
let result = Number.MIN_SAFE_INTEGER;
9+
for (let i = 0; i < nums1.length; i++) {
10+
dp[i] = [];
11+
let max = 0;
12+
for (let j = 0; j < nums2.length; j++) {
13+
if (dp[i - 1] && dp[i - 1][j - 1]) {
14+
max = Math.max(max, dp[i - 1][j - 1]);
15+
}
16+
if (i === 0 && j === 0) {
17+
dp[i][j] = nums1[i] * nums2[j];
18+
} else if (i === 0) {
19+
dp[i][j] = Math.max(dp[i][j - 1], nums1[i] * nums2[j]);
20+
} else if (j === 0) {
21+
dp[i][j] = Math.max(dp[i - 1][j], nums1[i] * nums2[j]);
22+
} else {
23+
dp[i][j] = Math.max(nums1[i] * nums2[j] + max, dp[i - 1][j - 1], dp[i - 1][j], dp[i][j - 1]);
24+
}
25+
result = Math.max(result, dp[i][j]);
26+
}
27+
}
28+
return result;
29+
};

0 commit comments

Comments
 (0)