Description
You are given an integer array nums
of length n
and a positive integer k
.
The power of an array of integers is defined as the number of
subsequences
with their sum equal to k
.
Return the sum of power of all subsequences of nums
.
Since the answer may be very large, return it modulo 109 + 7
.
Example 1:
Input: nums = [1,2,3], k = 3
Output: 6
Explanation:
There are 5
subsequences of nums with non-zero power:
- The subsequence
[**1**,**2**,**3**]
has2
subsequences withsum == 3
:[1,2,3]
and[1,2,3]
. - The subsequence
[**1**,2,**3**]
has1
subsequence withsum == 3
:[1,2,3]
. - The subsequence
[1,**2**,**3**]
has1
subsequence withsum == 3
:[1,2,3]
. - The subsequence
[**1**,**2**,3]
has1
subsequence withsum == 3
:[1,2,3]
. - The subsequence
[1,2,**3**]
has1
subsequence withsum == 3
:[1,2,3]
.
Hence the answer is 2 + 1 + 1 + 1 + 1 = 6
.
Example 2:
Input: nums = [2,3,3], k = 5
Output: 4
Explanation:
There are 3
subsequences of nums with non-zero power:
- The subsequence
[**2**,**3**,**3**]
has 2 subsequences withsum == 5
:[2,3,3]
and[2,3,3]
. - The subsequence
[**2**,3,**3**]
has 1 subsequence withsum == 5
:[2,3,3]
. - The subsequence
[**2**,**3**,3]
has 1 subsequence withsum == 5
:[2,3,3]
.
Hence the answer is 2 + 1 + 1 = 4
.
Example 3:
Input: nums = [1,2,3], k = 7
Output: 0
Explanation: There exists no subsequence with sum 7
. Hence all subsequences of nums have power = 0
.
Constraints:
1 <= n <= 100
1 <= nums[i] <= 104
1 <= k <= 100
Code
先看一個 Python 的解去理解背後邏輯:When we find cnt
elements that sum to k, those elements appear in subsequences.
Time Complexity: , Space Complexity:
其中 power
有用到 Pow(x, n) 中學到的技巧。