Skip to content

Commit 7654465

Browse files
committed
✨ number of subsequences that satisfy the given sum condition
1 parent 32d8330 commit 7654465

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

CATEGORY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
148
2727

2828
- 10.回溯算法
29-
491
29+
491 1498
3030

3131
* 字符串
3232

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} target
4+
* @return {number}
5+
*/
6+
7+
// HELP:
8+
var numSubseq = function (nums, target) {
9+
let res = 0;
10+
let mod = 1e9 + 7;
11+
let left = 0;
12+
let right = nums.length - 1;
13+
let powMod = new Array(nums.length);
14+
15+
nums.sort((val1, val2) => val1 - val2);
16+
17+
powMod[0] = 1;
18+
for (let i = 1; i <= nums.length; i++) {
19+
powMod[i] = (powMod[i - 1] * 2) % mod;
20+
}
21+
22+
while (left <= right) {
23+
while (left <= right && nums[left] + nums[right] > target) {
24+
right--;
25+
}
26+
if (left > right) {
27+
break;
28+
}
29+
30+
res += powMod[right - left];
31+
res = res % mod;
32+
left++;
33+
}
34+
35+
return res;
36+
};

0 commit comments

Comments
 (0)