We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 50e089a commit 67cdad0Copy full SHA for 67cdad0
1711-count-good-meals.js
@@ -0,0 +1,31 @@
1
+/**
2
+ * @param {number[]} deliciousness
3
+ * @return {number}
4
+ */
5
+const countPairs = function (deliciousness) {
6
+ const N = deliciousness.length
7
+ deliciousness.sort((a, b) => a - b)
8
+ const mp = {},
9
+ mod = 10 ** 9 + 7
10
+ let ret = 0
11
+ for (let i = 0; i < N; i++) {
12
+ if (deliciousness[i] !== 0) {
13
+ let sum = 1 << (32 - __builtin_clz(deliciousness[i]) - 1)
14
+ ret += mp[sum - deliciousness[i]] || 0
15
+ ret += mp[(sum << 1) - deliciousness[i]] || 0
16
+ if (ret >= mod) ret -= mod
17
+ }
18
+ if (mp[deliciousness[i]] == null) mp[deliciousness[i]] = 0
19
+ mp[deliciousness[i]]++
20
21
+ return ret
22
+}
23
+
24
+function __builtin_clz(num) {
25
+ if (num === 0) return 32
26
+ return 32 - dec2bin(num).length
27
28
29
+function dec2bin(num) {
30
+ return (num >>> 0).toString(2)
31
0 commit comments