在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中獲取陣列中所有和等於特定數字的三元組。

更新於:2023年1月19日

544 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.