如何在 Java 中查詢陣列的平衡索引?


在 Java 中,陣列是一個物件。它是一種非原始資料型別,用於儲存相同資料型別的多個值。

根據問題陳述,我們需要找到一個索引,使得該索引之前所有元素的總和等於該索引之後所有元素的總和,因此這個索引被稱為陣列的平衡索引。

在本文中,您將學習如何使用 Java 程式語言獲取陣列的平衡索引。讓我們開始探索吧。

展示一些示例

示例 1

Suppose the original array is {-4, 6, 2, 1, -7, 5, 3 }

找到陣列的平衡索引後,結果索引將是 -2。

示例 2

Suppose the original array is {-7, 1, 5, 2, -4, 3, 0}.

找到陣列的平衡索引後,結果索引將是 -3。

示例 3

Suppose the original array is {11, 22, 33, 44, 55}

找到陣列的平衡索引後,結果索引將是 -1。

演算法

  • 步驟 1 - 宣告並初始化一個整數陣列。

  • 步驟 2 - 將陣列轉換為字串。

  • 步驟 3 - 找到所有元素的總和。

  • 步驟 4 - 將當前總和與剩餘總和進行比較,以查詢平衡索引。

  • 步驟 5 - 列印所需的結果。

語法

要獲取陣列的長度(陣列中的元素數量),陣列有一個內建屬性,即 length

以下是其語法:

array.length

其中,'array' 指的是陣列引用。

要獲取陣列內容的字串表示形式或將陣列內容轉換為字串,Java Arrays 類提供了一個內建的 toString() 方法。

以下是其語法:

arr.toString()

其中,'arr' 指的是陣列引用。

多種方法

我們提供了使用不同方法的解決方案。

  • 使用陣列元素的靜態初始化。

  • 使用使用者定義的方法。

讓我們逐一檢視程式及其輸出。

方法 1:使用陣列元素的靜態初始化

示例

在這種方法中,陣列元素將在程式中初始化。然後,根據演算法找到總和,並將當前總和與剩餘總和進行比較,以查詢平衡索引。

import java.util.Arrays; 

public class Main {

   //main method
   public static void main(String[] args) {
   
      //Declare and initialize the array elements
      int[] nums =  {-4, 6, 2, 1, -7, 5, 3 };
      
      //converting array  to string
      System.out.println("Original array: "+Arrays.toString(nums));
      
      //find total sum of element in an array
      int Sum = 0;
      for (int n : nums){
         Sum += n;
      }
      
      //compare current sum to remaining sum to find equilibrium indices
      int currentSum = 0;
      for (int i = 0; i < nums.length; i++){
         int n = nums[i];
         if (Sum - currentSum - n == currentSum){
         
            //printing the desired output
            System.out.println("Equilibrium indices is found at index number : "+i);
         }
         currentSum += n;
      }
   }
}

輸出

Original array: [-4, 6, 2, 1, -7, 5, 3]
Equilibrium indices is found at index number : 2

方法 2:使用使用者定義的方法

示例

在這種方法中,陣列元素將在程式中初始化。然後,透過將陣列作為引數傳遞來呼叫使用者定義的方法,並在方法內部根據演算法找到總和,並將當前總和與剩餘總和進行比較,以查詢平衡索引。

import java.util.Arrays; 
public class Main{

   //main method
   public static void main(String[] args){
   
      //Declare and initialize the array elements
      int[] nums =  {-4, 6, 2, 1, -7, 5, 3 };
      
      //converting array  to string
      System.out.println("Original array: "+Arrays.toString(nums));
      equal(nums);
   }
 
   //user defined method
   public static void equal(int[] nums){
   
      //find total sum of element in an array
      int Sum = 0;
      for (int n : nums){
         Sum += n;
      }
      
      //compare current sum to remaining sum to find equilibrium indices
      int currentSum = 0;
      for (int i = 0; i < nums.length; i++) {
         int n = nums[i];
         if (Sum - currentSum - n == currentSum){
         
            //printing the desired output
            System.out.println("Equilibrium indices is found at index number : "+i);
         }
         currentSum += n;
      }
   }
}

輸出

Original array: [-4, 6, 2, 1, -7, 5, 3]
Equilibrium indices is found at index number : 2

在本文中,我們探討了如何使用 Java 程式語言查詢陣列的平衡索引。

更新於: 2023 年 1 月 5 日

1K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告