https://blog.youkuaiyun.com/qq_24885695/article/details/75268318
【题目】
根据一个数组,找出其平衡点,也就是该点左边的和等于右边的和。一个数组可能有多个平衡点。
注意:数组至少有3个元素,才能有平衡点存在
【代码】
import java.util.Scanner;
public class FindBalancePoint {
public static boolean findBalancePoint(int[] arr) {
int sum = 0;
boolean hasPoint = false;//判断是否有平衡点
if( arr.length <= 2 ){
System.out.println("输入不符合要求,无平衡点");
}
else{
for(int i = 0 ; i < arr.length ; i++)
sum += arr[i];
int sumLeft = 0;//左边的和
int sumRight = sum - arr[0];//右边的和
for(int j = 1 ; j < arr.length ; j++){
sumLeft += arr[j-1];
sumRight -= arr[j];
if(sumLeft != sumRight)
continue;
else{
System.out.print(arr[j]+" ");
hasPoint =true;
}
}
}
return hasPoint;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个数组,并用逗号隔开(至少包含三个元素):");
String inputString = sc.next();
String[] stringArray = inputString.split(",");
int length = stringArray.length;
int[] arr = new int[length];
for(int i = 0;i<length;i++){
arr[i]=Integer.parseInt(stringArray[i]);
}
if(!findBalancePoint(arr))
System.out.println("输入的数组无平衡点");
sc.close();
}
}

本文介绍了一个寻找数组中平衡点的方法,即找到数组中使左右两边数值总和相等的元素位置。通过遍历数组,计算左右两侧数值总和来进行比较,实现对平衡点的有效查找。
278

被折叠的 条评论
为什么被折叠?



