top of page
Search

Maximum Score from Performing Multiplication Operations

Updated: Mar 24, 2021

You are given two integer arrays nums and multipliers of size n and m respectively, where n >= m. The arrays are 1-indexed.

You begin with a score of 0. You want to perform exactly m operations. On the ith operation (1-indexed), you will:

  • Choose one integer x from either the start or the end of the array nums.

  • Add multipliers[i] * x to your score.

  • Remove x from the array nums.

Return the maximum score after performing m operations.


Example 1:

Input: nums = [1,2,3], multipliers = [3,2,1]
Output: 14
Explanation: An optimal solution is as follows:
- Choose from the end, [1,2,3], adding 3 * 3 = 9 to the score.
- Choose from the end, [1,2], adding 2 * 2 = 4 to the score.
- Choose from the end, [1], adding 1 * 1 = 1 to the score.
The total score is 9 + 4 + 1 = 14.

Example 2:

Input: nums = [-5,-3,-3,-2,7,1], multipliers = [-10,-5,3,4,6]
Output: 102
Explanation: An optimal solution is as follows:
- Choose from the start, [-5,-3,-3,-2,7,1], adding -5 * -10 = 50 to the score.
- Choose from the start, [-3,-3,-2,7,1], adding -3 * -5 = 15 to the score.
- Choose from the start, [-3,-2,7,1], adding -3 * 3 = -9 to the score.
- Choose from the end, [-2,7,1], adding 1 * 4 = 4 to the score.
- Choose from the end, [-2,7], adding 7 * 6 = 42 to the score. 
The total score is 50 + 15 - 9 + 4 + 42 = 102.

Constraints:

  • n == nums.length

  • m == multipliers.length

  • 1 <= m <= 103

  • m <= n <= 105

  • -1000 <= nums[i], multipliers[i] <= 1000

Solution:


class Solution {
    int[][] dp = new int [1000][1000];
   public int maximumScore(int[] nums, int[] multipliers) {
    return helper(nums,multipliers,0,nums.length-1,0);
    }
    public int helper(int[] a,int[] m,int start, int end, int mindex)
    {
        if(mindex==m.length) return 0;
        if(dp[mindex][start]!=0) return dp[mindex][start];
        int val1 = m[mindex]*a[start]+helper(a,m,start+1,end,mindex+1);
        int val2 = m[mindex]*a[end]+helper(a,m,start,end-1,mindex+1);
        dp[mindex][start]=Math.max(val1,val2);
        return dp[mindex][start];
    }
}

 
 
 

Recent Posts

See All

2 Comments


Alx Bob
Alx Bob
Jun 23

If you're searching for an interactive multiplication table to help your child practice, online tools offer some great options. Instead of just static charts, these can include features like highlighting rows and columns, fill-in-the-blank exercises, or even multiplication games. This active engagement can make learning times tables much more effective and less monotonous. It’s a great way to reinforce classroom learning at home and help kids build confidence in their math abilities through playful interaction and immediate feedback.

Like

Alx Bob
Alx Bob
Jun 21

A free multiplication chart is an invaluable aid for any student learning their times tables. Whether it's a printable chart they can keep on their desk or an interactive online version, seeing the patterns visually can greatly help with memorization. Many online resources also offer blank charts for practice or charts that go up to 1-100, providing a comprehensive tool. These resources make it easier for parents and teachers to support children as they build this fundamental math skill, often incorporating games to keep learning enjoyable.

Like
bottom of page