2022-03-27 20:46:41 +08:00
< p > Given an integer array < code > arr< / code > , and an integer < code > target< / code > , return the number of tuples < code > i, j, k< / code > such that < code > i < j < k< / code > and < code > arr[i] + arr[j] + arr[k] == target< / code > .< / p >
< p > As the answer can be very large, return it < strong > modulo< / strong > < code > 10< sup > 9< / sup > + 7< / code > .< / p >
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 20:46:41 +08:00
< pre >
< strong > Input:< / strong > arr = [1,1,2,2,3,3,4,4,5,5], target = 8
< strong > Output:< / strong > 20
< strong > Explanation: < / strong >
Enumerating by the values (arr[i], arr[j], arr[k]):
(1, 2, 5) occurs 8 times;
(1, 3, 4) occurs 8 times;
(2, 2, 4) occurs 2 times;
(2, 3, 3) occurs 2 times.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 20:46:41 +08:00
< pre >
< strong > Input:< / strong > arr = [1,1,2,2,2,2], target = 5
< strong > Output:< / strong > 12
< strong > Explanation: < / strong >
arr[i] = 1, arr[j] = arr[k] = 2 occurs 12 times:
We choose one 1 from [1,1] in 2 ways,
and two 2s from [2,2,2,2] in 6 ways.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 3:< / strong > < / p >
2022-05-02 23:42:43 +08:00
< pre >
< strong > Input:< / strong > arr = [2,1,3], target = 6
< strong > Output:< / strong > 1
< strong > Explanation:< / strong > (1, 2, 3) occured one time in the array so we return 1.
< / pre >
2022-03-27 20:46:41 +08:00
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > 3 < = arr.length < = 3000< / code > < / li >
< li > < code > 0 < = arr[i] < = 100< / code > < / li >
< li > < code > 0 < = target < = 300< / code > < / li >
< / ul >