Упражнения Java Array: Найти все уникальные триплеты так, чтобы сумма всех трех элементов была равна указанному числу
Java Array: Упражнение 36 с решением
Напишите программу на Java, чтобы найти все уникальные триплеты, в которых сумма всех трех элементов [x, y, z (x ≤ y ≤ z)] равна указанному числу.
Пример массива: [1, -2, 0, 5, -1, -4]
Целевое значение: 2.
Иллюстрированная презентация:
Пример решения :
Java-код:
import java.util.ArrayList;
import java.util.List;
public class Exercise36 {
public static void main(String[] args) {
int[] input = {1, -2, 0, 5, -1, -4};
int target = 2;
Exercise36 r = new Exercise36();
System.out.println(r.threeSum(input,target));
}
public List<List<Integer>> threeSum(int[] nums, int target) {
List<List<Integer>> my_List = new ArrayList<List<Integer>>();
for(int i = 0; i < nums.length; i++){
for(int j = i; j < nums.length ;j++){
for(int k = j; k<nums.length;k++){
if ( i != j && j != k && i != k && (nums[i] + nums[j] + nums[k] == target)){
List<Integer> inner_List = new ArrayList<Integer>(3);
inner_List.add(nums[i]);
inner_List.add(nums[j]);
inner_List.add(nums[k]);
my_List.add(inner_List);
}
}
}
}
return my_List;
}
}
Пример вывода:
[[1, 5, -4], [-2, 5, -1]]
Блок - схема:
Визуализация выполнения кода Java (Python Tutor):
Редактор кода Java:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на Java, чтобы найти сумму двух элементов данного массива, которая равна заданному целому числу.
Далее: Напишите программу на Java для создания массива ее антидиагоналей из заданной квадратной матрицы.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования