Get Distinct Pairs (Also apply to AS intern)
Problem statement
A financial strategist at Amazon Web Services (AWS) is analyzing a collection of profitable investments, each represented by an integer array. Every value in the array indicates the annual gain of a particular investment. The strategist's goal is to identify all unique investment pairs whose combined annual returns exactly match a given target value.
Unique pairs are defined as combinations that vary by at least one element (i.e., their values are not at the exact same positions or do not have identical values in identical positions).
Given the array of gains, compute the number of unique investment pairs whose sum equals the specified target return.
Function
getDistinctPairs(stocksProfit: int[], target: int) → int
Complete the function getDistinctPairs in the editor.
getDistinctPairs has the following parameter(s):
- 1.
int investmentReturns[n]: an array of integers representing each investment’s yearly gain - 2.
goal: an integer denoting the targeted combined return
Returns
int: the total number of unique pairs that meet the target return
Examples
Example 1
stocksProfit = [5, 7, 9, 13, 11, 6, 6, 3, 3]target = 12return = 3There are four pairs whose combined gains equal the target return of 12. However, since the array includes duplicate values of 3, there are two versions of the pair (9, 3): one between positions 2 and 7, and another between positions 2 and 8. But only one of these can be counted to maintain uniqueness. Therefore, the valid and unique pairs are:
- (5, 7)
- (3, 9)
- (6, 6)
We return 3.
Constraints
1 ≤ n ≤ 5 x 10^50 ≤ investmentReturns[i] ≤ 10^90 ≤ goal ≤ 5 x 10^9