Member-only story

Leetcode Contest Maximum Multiplication Score

Santosh yadav
3 min readSep 15, 2024

You are given an integer array a of size 4 and another integer array b of size at least 4.

You need to choose 4 indices i0, i1, i2, and i3 from the array b such that i0 < i1 < i2 < i3. Your score will be equal to the value a[0] * b[i0] + a[1] * b[i1] + a[2] * b[i2] + a[3] * b[i3].

Return the maximum score you can achieve.

Example 1:

Input: a = [3,2,5,6], b = [2,-6,4,-5,-3,2,-7]

Output: 26

Explanation:
We can choose the indices 0, 1, 2, and 5. The score will be 3 * 2 + 2 * (-6) + 5 * 4 + 6 * 2 = 26.

Example 2:

Input: a = [-1,4,5,-2], b = [-5,-1,-3,-2,-4]

Output: -1

Explanation:
We can choose the indices 0, 1, 3, and 4. The score will be (-1) * (-5) + 4 * (-1) + 5 * (-2) + (-2) * (-4) = -1.

function maxScore(a, b) {
let dp = Array(5).fill(0).map(() => Array(b.length + 1).fill(-Infinity));
dp[0][0] = 0;

// Iterate over the first i elements of a
for (let i = 1; i <= 4; i++) {
let maxSoFar = -Infinity;
for (let j = i; j <= b.length; j++) {
maxSoFar = Math.max(maxSoFar, dp[i - 1][j - 1]);
dp[i][j] = maxSoFar + a[i - 1] * b[j - 1];
}
}

return Math.max(...dp[4]);
}
public class MaxScore {
public static int maxScore(int[] a, int[] b) {…

--

--

Santosh yadav
Santosh yadav

No responses yet