Сначала вы добавляете пустой HashSet, и разрешено использовать только один, что означает, что ваш второй, если логический тест не годится:
HashSet<Integer> hash = new HashSet<>();
int q =Math.abs(y-u);
if(y!=u && q==1 ) {
hash.add(seq[y]);
hash.add(seq[u]);
}
if(hashSets.add(hash)){
System.out.println(seq[y]+" "+seq[u]);
count++;
}
Вместо этого поместите все в первый блок if:
HashSet<Integer> hash = new HashSet<>();
int q = Math.abs(y-u);
if(y != u && q == 1 ) {
hash.add(seq[y]);
hash.add(seq[u]);
System.out.println(seq[y] + " " + seq[u]);
count++;
}
Примечание: зачем вообще проверять y != u
, если q == 1
, y не может равняться u
, тем лучше:
if (q == 1) {
hash.add(seq[y]);
hash.add(seq[u]);
System.out.println(seq[y] + " " + seq[u]);
count++;
}