1、题目

2、分析与解答
class Solution { public int countPairs(int[] deliciousness) { final int mod = 1000000007; int max = 0; for(int deli : deliciousness) { max = Math.max(deli,max); } int maxValue = 2 * max; int pairs = 0; Map<Integer,Integer> map = new HashMap<>(); for(int i = 0;i < deliciousness.length;i++) { int val = deliciousness[i]; for(int sum = 1;sum <= maxValue; sum<<=1) { int count = map.getOrDefault(sum - val , 0); pairs = (pairs + count) % mod; } map.put(val,map.getOrDefault(val,0) + 1); } return pairs; }}