Я работаю над проблемой, когда мне нужно найти количество пар ((i, j)) такого, что: < /p>
(i
(a + a [j] = 2^x) где ( x) является целым числом.
Поскольку ответ может быть большим, его следует возвращать модулю (10^9 + 7). ограничения: < /strong> < /h4>
(1
Что не так с моим подходом? Br /> Любая помощь будет высоко оценена! > Hashmap для хранения частоты элементов и итерированных над уникальными элементами, чтобы проверить, существует ли их дополнение (которая образует 2 сумму).
Вот моя реализация:
import java.io.*;
import java.util.*;
public class Solution {
public static int twiceMatch(Integer[] A) {
long MOD = 1000000007;
HashMap mp = new HashMap();
for (int i = 0; i < A.length; i++) {
mp.put(A, mp.getOrDefault(A, 0) + 1);
}
long cnt = 0;
for (Map.Entry entry : mp.entrySet()) {
int key = entry.getKey();
int closePower = 1;
while (closePower
[h4] [b] Запрещение задачи: [/b] [/h4] Я работаю над проблемой, когда мне нужно найти количество пар ((i, j)) такого, что: < /p> [list] [*] (i (a [i] + a [j] = 2^x) где ( x) является целым числом. [/list] Поскольку ответ может быть большим, его следует возвращать модулю (10^9 + 7). [b] ограничения: < /strong> < /h4> [list] [*] (1
Что не так с моим подходом? Br /> Любая помощь будет высоко оценена! > Hashmap [/b] для хранения частоты элементов и итерированных над уникальными элементами, чтобы проверить, существует ли их дополнение (которая образует 2 сумму). Вот моя реализация: import java.io.*; import java.util.*;
public class Solution { public static int twiceMatch(Integer[] A) { long MOD = 1000000007; HashMap mp = new HashMap(); for (int i = 0; i < A.length; i++) { mp.put(A[i], mp.getOrDefault(A[i], 0) + 1); }
long cnt = 0; for (Map.Entry entry : mp.entrySet()) { int key = entry.getKey(); int closePower = 1; while (closePower