O(n) - Solution


#1
public int diffPossible(final List<Integer> A, int B) {
    
    int val, i, j;
    List<Integer> indexes;
    HashMap<Integer,List<Integer>> hash = new HashMap<Integer,List<Integer>>();
    
    for (i = 0 ; i < A.size() ; i++) {
        val = A.get(i) + B;
        if (hash.containsKey(val)) {
            indexes = hash.get(val);
            indexes.add(i);
        } else {
            indexes = new ArrayList<Integer>();
            indexes.add(i);
            hash.put(val, indexes);
        }
    }
    
    for (i = 0 ; i < A.size() ; i++) {
        if (hash.containsKey(A.get(i))) {
            indexes = hash.get(A.get(i));
            for (j = 0 ; j < indexes.size() ; j++) {
                if (i != indexes.get(j)) {
                    return 1;
                }
            }
        }
    }
    return 0;
}