Я сделал это в п ^ 3, мой псевдокод ниже;
// Создать hashMap с ключом в качестве Integer и значением в качестве ArrayList
// перебираем список, используя цикл for, для каждого значения в списке перебираем снова, начиная со следующего значения;
for (int i=0; i<=arr.length-1 ; i++){
for (int j=i+1; j<=arr.length-1;j++){
// если сумма arr [i] и arr [j] меньше требуемой суммы, то есть вероятность найти третью цифру, так что сделайте другую для цикла
if (arr[i]+arr[j] < sum){
for (int k= j+1; k<=arr.length-1;k++)
// в этом случае мы ищем третье значение; если сумма
arr [i], arr [j] и arr [k] - желаемая сумма, затем добавьте их в HashMap, сделав arr [i] ключом, а затем добавьте arr [j] и arr [k] в ArrayList в значение этого ключа
if (arr[i]+arr[j]+arr[k] == sum){
map.put(arr[i],new ArrayList<Integer>());
map.get(arr[i]).add(arr[j]);
map.get(arr[i]).add(arr[k]);}
после этого у вас теперь есть словарь, в котором есть все записи, представляющие три значения, добавленные к желаемой сумме. Извлеките все эти записи, используя функции HashMap. Это сработало отлично.