public class 返回数组分界点下标 {
public static void main(String[] args) {
int[] arrays = {1, 2, 3, 3, 2, 1};
System.out.println("args = [" + returnIndex(arrays) + "]");
}
private static int returnIndex(int[] array) {
//数组长度
int count = array.length;
//如果 长度 小于3 或者 余数不是1 就返回-1
if (count < 3 || count % 2 == 0) {
return -1;
}
//数组总和
int allnum = 0;
//左边数组总和
int leftnum = 0;
//右边数组总和
int rightnum = 0;
//计算数组总和
for (int i = 0; i < count; i++) {
allnum += array[i];
}
//遍历得到数组分界点左右两端数组比较
for (int i = 1; i < count - 1; i++) {
//左边数组
leftnum += array[i - 1];
//右边数组=所有的-左数组-分界点
rightnum = allnum - leftnum - array[i];
//如果两数相等 返回下标
if (rightnum == leftnum) {
return i;
}
}
return -1;
}
}
网友评论