📅  最后修改于: 2023-12-03 14:43:03.933000             🧑  作者: Mango
在编写Java程序时,有时需要查找一个序列中和为给定值的三元组。本文将介绍如何使用Java编写查找总和为给定值的三元组的程序。
我们可以使用暴力搜索算法来查找和为给定值的三元组。该算法的时间复杂度是O(N^3),其中N是序列的长度,因此效率不高,但非常简单易懂。以下是代码:
public static void findTriplets(int arr[], int sum){
int n = arr.length;
boolean found = false;
for (int i = 0; i < n - 2; i++){
for (int j = i + 1; j < n - 1; j++) {
for (int k = j + 1; k < n; k++) {
if (arr[i] + arr[j] + arr[k] == sum) {
System.out.println(arr[i] + " " + arr[j] + " " + arr[k]);
found = true;
}
}
}
}
if (!found) {
System.out.println("No triplets found");
}
}
该方法有三个嵌套的循环,分别用于枚举三元组中的三个元素。然后我们检查每个三元组是否等于给定的总和。
我们可以使用以下代码来测试我们的方法:
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int sum = 10;
findTriplets(arr, sum);
}
上述代码创建一个数组arr和一个总和sum,然后调用我们的findTriplets方法。如果执行成功,输出结果应为“1 2 7”,因为这是唯一一个等于10的三元组。
本文介绍了Java程序如何查找总和为给定值的三元组。我们使用了暴力搜索算法,虽然效率不高,但易于理解和实现。因此,该算法是一个值得了解的解决问题的潜在方法。