mirror of
https://gitee.com/coder-xiaomo/leetcode-problemset
synced 2025-01-10 18:48:13 +08:00
49 lines
2.2 KiB
HTML
49 lines
2.2 KiB
HTML
<p>给你两个下标从 <strong>0</strong> 开始的整数数组 <code>nums1</code> 和 <code>nums2</code> ,两者长度都是 <code>n</code> ,再给你一个正整数 <code>k</code> 。你必须从 <code>nums1</code> 中选一个长度为 <code>k</code> 的 <strong>子序列</strong> 对应的下标。</p>
|
||
|
||
<p>对于选择的下标 <code>i<sub>0</sub></code> ,<code>i<sub>1</sub></code> ,..., <code>i<sub>k - 1</sub></code> ,你的 <strong>分数</strong> 定义如下:</p>
|
||
|
||
<ul>
|
||
<li><code>nums1</code> 中下标对应元素求和,乘以 <code>nums2</code> 中下标对应元素的 <strong>最小值</strong> 。</li>
|
||
<li>用公式表示: <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>请你返回 <strong>最大</strong> 可能的分数。</p>
|
||
|
||
<p>一个数组的 <strong>子序列</strong> 下标是集合 <code>{0, 1, ..., n-1}</code> 中删除若干元素得到的剩余集合,也可以不删除任何元素。</p>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>示例 1:</strong></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>nums1 = [1,3,3,2], nums2 = [2,1,3,4], k = 3
|
||
<b>输出:</b>12
|
||
<b>解释:</b>
|
||
四个可能的子序列分数为:
|
||
- 选择下标 0 ,1 和 2 ,得到分数 (1+3+3) * min(2,1,3) = 7 。
|
||
- 选择下标 0 ,1 和 3 ,得到分数 (1+3+2) * min(2,1,4) = 6 。
|
||
- 选择下标 0 ,2 和 3 ,得到分数 (1+3+2) * min(2,3,4) = 12 。
|
||
- 选择下标 1 ,2 和 3 ,得到分数 (3+3+2) * min(1,3,4) = 8 。
|
||
所以最大分数为 12 。
|
||
</pre>
|
||
|
||
<p><strong>示例 2:</strong></p>
|
||
|
||
<pre>
|
||
<b>输入:</b>nums1 = [4,2,3,1,1], nums2 = [7,5,10,9,6], k = 1
|
||
<b>输出:</b>30
|
||
<b>解释:</b>
|
||
选择下标 2 最优:nums1[2] * nums2[2] = 3 * 10 = 30 是最大可能分数。
|
||
</pre>
|
||
|
||
<p> </p>
|
||
|
||
<p><strong>提示:</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>
|