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] <= 1051 <= 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 | |