Class Solution
java.lang.Object
g2501_2600.s2542_maximum_subsequence_score.Solution
2542 - Maximum Subsequence Score.<p>Medium</p>
<p>You are given two <strong>0-indexed</strong> integer arrays <code>nums1</code> and <code>nums2</code> of equal length <code>n</code> and a positive integer <code>k</code>. You must choose a <strong>subsequence</strong> of indices from <code>nums1</code> of length <code>k</code>.</p>
<p>For chosen indices <code>i<sub>0</sub></code>, <code>i<sub>1</sub></code>, …, <code>i<sub>k - 1</sub></code>, your <strong>score</strong> is defined as:</p>
<ul>
<li>The sum of the selected elements from <code>nums1</code> multiplied with the <strong>minimum</strong> of the selected elements from <code>nums2</code>.</li>
<li>It can defined simply as: <code>(nums1[i<sub>0</sub>] + nums1[i<sub>1</sub>] +…+ nums1[i<sub>k - 1</sub>]) * min(nums2[i<sub>0</sub>] , nums2[i<sub>1</sub>], … ,nums2[i<sub>k - 1</sub>])</code>.</li>
</ul>
<p>Return <em>the <strong>maximum</strong> possible score.</em></p>
<p>A <strong>subsequence</strong> of indices of an array is a set that can be derived from the set <code>{0, 1, ..., n-1}</code> by deleting some or no elements.</p>
<p><strong>Example 1:</strong></p>
<p><strong>Input:</strong> nums1 = [1,3,3,2], nums2 = [2,1,3,4], k = 3</p>
<p><strong>Output:</strong> 12</p>
<p><strong>Explanation:</strong></p>
<p>The four possible subsequence scores are:</p>
<ul>
<li>
<p>We choose the indices 0, 1, and 2 with score = (1+3+3) * min(2,1,3) = 7.</p>
</li>
<li>
<p>We choose the indices 0, 1, and 3 with score = (1+3+2) * min(2,1,4) = 6.</p>
</li>
<li>
<p>We choose the indices 0, 2, and 3 with score = (1+3+2) * min(2,3,4) = 12.</p>
</li>
<li>
<p>We choose the indices 1, 2, and 3 with score = (3+3+2) * min(1,3,4) = 8.</p>
</li>
</ul>
<p>Therefore, we return the max score, which is 12.</p>
<p><strong>Example 2:</strong></p>
<p><strong>Input:</strong> nums1 = [4,2,3,1,1], nums2 = [7,5,10,9,6], k = 1</p>
<p><strong>Output:</strong> 30</p>
<p><strong>Explanation:</strong> Choosing index 2 is optimal: nums1[2] * nums2[2] = 3 * 10 = 30 is the maximum possible score.</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>n == nums1.length == nums2.length</code></li>
<li><code>1 <= n <= 10<sup>5</sup></code></li>
<li><code>0 <= nums1[i], nums2[j] <= 10<sup>5</sup></code></li>
<li><code>1 <= k <= n</code></li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
maxScore
public long maxScore(int[] nums1, int[] nums2, int k)
-