Java 找到数组中和特定数字相等的三元组

Java 找到数组中和特定数字相等的三元组

在Java中,数组是一个对象。它是一种非原始数据类型,可以存储相同数据类型的值。

根据问题描述,我们需要找到数组中所有和特定数字相等的三元组。这里的三元组指的是数组中满足特定条件的任意三个元素。

注意 – 数组必须是整数数组。

让我们来看看如何使用Java编程语言来解决这个问题。

举个示例

示例-1

Suppose the original array is {3, 4, 25, 6, 13, 9}.

执行三元组操作以获取总和等于37后,结果将为:

The triplet is 3, 25, 9.

示例-2

Suppose the original array is {11, 4, 5, 6, 21, 29}

完成三元操作使得和为22后,结果将为-

The triplet is 11, 5, 6.

示例-3

Suppose the original array is {8, 2, 15, 6, 11, 1}

执行三元操作以使和等于14后,结果将为−

The triplet is 2, 11, 1.

步骤

  • 步骤1 - 声明并初始化整数数组。

  • 步骤2 - 声明需要找到三元组的总和。

  • 步骤3 - 初始化三个嵌套的for循环以找出三元组的元素。

  • 步骤4 - 检查三个元素是否等于总和。

  • 步骤5 - 打印三元组。

语法

为了获得数组的长度(数组中的元素数量),数组有一个内建的属性,即 length

下面是其语法的参考 –

array.length

其中,’array’指的是数组引用。

多种方法

我们以不同的方法提供了解决方案。

  • 通过使用数组的静态初始化

  • 通过使用用户定义的方法

让我们逐个看程序及其输出。

方法1:通过使用数组的静态初始化

示例

在这个方法中,数组元素将在程序中进行初始化。然后按照算法,获取数组中所有和为特定数的三元组。

public class Main{
   //main method
   public static void main(String[] args){

      //Declare and initialize the array elements
      int arr[] = {11, 4, 5, 6, 21, 29};

      //a particular number whose triplet meeds to be find out
      int sum = 15;

      // Fix the first element as a[i]
      for (int i = 0; i < arr.length - 2; i++) {

         // Fix the second element as a[j]
         for (int j = i + 1; j < arr.length - 1; j++) {
            // Now look for the third number in an array
            for (int k = j + 1; k < arr.length; k++) {             
               if (arr[i] + arr[j] + arr[k] == sum) {

                  //printing the triplet
                  System.out.print("The triplet is " + arr[i] + ", " + arr[j] + ", " + arr[k] + ".");
               }
            }
         }
      }
   }
}

输出

The triplet is 4, 5, 6.

方法2:使用用户定义的方法

示例

在这种方法中,程序中将初始化数组元素。然后调用一个用户定义的方法,通过将数组作为参数传递,并在方法内根据算法获取数组中所有和为特定数字的三元组。

public class Main{
   //main method
   public static void main(String[] args){

      //Declare and initialize the array elements
      int arr[] = { 8, 2, 15, 6, 11, 1 };

      //calling user defined method
      triplet(arr);
   }

   //user defined method
   public static void triplet(int []arr){

      //a particular number whose triplet meeds to be find out
      int sum = 14;

      // Fix the first element as a[i]
      for (int i = 0; i < arr.length - 2; i++) {
         // Fix the second element as a[j]
         for (int j = i + 1; j < arr.length - 1; j++) {
            // Now look for the third number in an array
               for (int k = j + 1; k < arr.length; k++) {              
                  if (arr[i] + arr[j] + arr[k] == sum) {

                  //printing the triplet
                  System.out.print("The triplet is " + arr[i] + ", " + arr[j] + ", " + arr[k] + ".");
               }
            }
         }
      }
   }
}

输出

The triplet is 2, 11, 1.

在这篇文章中,我们探索了如何在Java中获取数组中所有三元组的和等于特定数字的方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程