Skip to content

Commit 1ff2a71

Browse files
committed
https://leetcode.cn/problems/number-of-different-subsequences-gcds/
1 parent cfacc6d commit 1ff2a71

File tree

4 files changed

+113
-2
lines changed

4 files changed

+113
-2
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ Step 2. Add the dependency
4949

5050
<summary>展开查看</summary>
5151

52+
https://leetcode.cn/problems/number-of-different-subsequences-gcds/
53+
5254
https://leetcode-cn.com/problems/rearrange-characters-to-make-target-string/
5355

5456
https://leetcode-cn.com/problems/assign-cookies/

deno.lock

Lines changed: 72 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

deps.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ export { default as countBy } from "https://cdn.skypack.dev/lodash@4.17.21/count
1111
export { default as zip } from "https://cdn.skypack.dev/lodash@4.17.21/zip?dts";
1212
export { default as isEqual } from "https://cdn.skypack.dev/lodash@4.17.21/isEqual?dts";
1313
export { default as uniqBy } from "https://cdn.skypack.dev/lodash@4.17.21/uniqBy?dts";
14-
14+
export { default as max } from "https://cdn.skypack.dev/lodash@4.17.21/max?dts";
15+
export { default as sum } from "https://cdn.skypack.dev/lodash@4.17.21/sum?dts";
1516
export { default as intersection } from "https://cdn.skypack.dev/lodash@4.17.21/intersection?dts";
1617
import { BinaryHeap } from "https://deno.land/std@0.171.0/collections/binary_heap.ts";
1718
export { BinaryHeap };
@@ -26,7 +27,7 @@ export {
2627
BinarySearchTreeNode,
2728
} from "npm:@datastructures-js/binary-search-tree@5.2.0";
2829
export { default as groupBy } from "https://cdn.skypack.dev/lodash@4.17.21/groupBy?dts";
29-
export { default as sum } from "https://cdn.skypack.dev/lodash@4.17.21/sum?dts";
30+
3031
export {
3132
runScript,
3233
TreeNode,
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { max } from "../deps.ts";
2+
3+
function countDifferentSubsequenceGCDs(nums: number[]): number {
4+
const maxVal = max(nums) as number;
5+
const occured = new Array<boolean>(maxVal + 1).fill(false);
6+
for (const num of nums) {
7+
occured[num] = true;
8+
}
9+
let ans = 0;
10+
for (let i = 1; i <= maxVal; i++) {
11+
let subGcd = 0;
12+
for (let j = i; j <= maxVal; j += i) {
13+
if (occured[j]) {
14+
if (subGcd === 0) {
15+
subGcd = j;
16+
} else {
17+
subGcd = gcd(subGcd, j);
18+
}
19+
if (subGcd === i) {
20+
ans++;
21+
break;
22+
}
23+
}
24+
}
25+
}
26+
return ans;
27+
}
28+
export function gcd(num1: number, num2: number) {
29+
while (num2 !== 0) {
30+
const temp = num1;
31+
num1 = num2;
32+
num2 = temp % num2;
33+
}
34+
return num1;
35+
}
36+
export default countDifferentSubsequenceGCDs;

0 commit comments

Comments
 (0)