3584. Maximum Product of First and Last Elements of a Subsequence
Description
You are given an integer array nums
and an integer m
.
Return the maximum product of the first and last elements of any subsequence of nums
of size m
.
Example 1:
Input: nums = [-1,-9,2,3,-2,-3,1], m = 1
Output: 81
Explanation:
The subsequence [-9]
has the largest product of the first and last elements: -9 * -9 = 81
. Therefore, the answer is 81.
Example 2:
Input: nums = [1,3,-5,5,6,-4], m = 3
Output: 20
Explanation:
The subsequence [-5, 6, -4]
has the largest product of the first and last elements.
Example 3:
Input: nums = [2,-1,2,-6,5,2,-5,7], m = 2
Output: 35
Explanation:
The subsequence [5, 7]
has the largest product of the first and last elements.
Constraints:
1 <= nums.length <= 105
-105 <= nums[i] <= 105
1 <= m <= nums.length
Solutions
Solution 1: Enumeration + Maintaining Prefix Extremes
We can enumerate the last element of the subsequence, assuming it is \(\textit{nums}[i]\). Then the first element of the subsequence can be \(\textit{nums}[j]\), where \(j \leq i - m + 1\). Therefore, we use two variables \(\textit{mi}\) and \(\textit{mx}\) to maintain the prefix minimum and maximum values respectively. When traversing to \(\textit{nums}[i]\), we update \(\textit{mi}\) and \(\textit{mx}\), then calculate the products of \(\textit{nums}[i]\) with \(\textit{mi}\) and \(\textit{mx}\), taking the maximum value.
The time complexity is \(O(n)\), where \(n\) is the length of array \(\textit{nums}\). And the space complexity is \(O(1)\).
1 2 3 4 5 6 7 8 9 10 11 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|