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数组类提供了一个内置的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编程语言探讨了如何找到数组的平衡索引。