例如数组a中有以下元素:
{-7,5,-1,3,-5,5,0}
其中:a[0]=-7,
a[1]=5,
a[2]=-1,
a[3]=3,
a[4]=-5,
a[5]=5,
a[6]=0,
a[0]+a[1]+a[2]+a[3]=a[4]+a[5]+a[6] 左边=右边a[0]+a[1]+a[2]+a[3]+a[4]+a[5]=a[6] 左边=右边则元素a[3]和a[5]为平衡点,对应的下标为3和5
用JAVA实现这种功能
{-7,5,-1,3,-5,5,0}
其中:a[0]=-7,
a[1]=5,
a[2]=-1,
a[3]=3,
a[4]=-5,
a[5]=5,
a[6]=0,
a[0]+a[1]+a[2]+a[3]=a[4]+a[5]+a[6] 左边=右边a[0]+a[1]+a[2]+a[3]+a[4]+a[5]=a[6] 左边=右边则元素a[3]和a[5]为平衡点,对应的下标为3和5
用JAVA实现这种功能
解决方案 »
- java如何监听系统中插入U盘
- 程序是怎样检测哪些变量使用频繁而把它存放到寄存器中的呢。?
- 万年历
- mysql数据库增加问题
- string类中的substring函数,如果第2个函数参数已经超出了字符串的范围,或者字符串本身为null,那会如何?
- java中锁到底是什么?
- charat() compareto()怎么用啊,能不能举个例子,谢谢!
- 请教一下苹果上java的URL编码问题
- Java 中 static(静态) 与 final 有什么区别。static 修饰符主要用在什么地方?
- 如何清空一个文件??
- snmp协议 如何获取局域网电脑Cpu负载和内存使用率
- 用JAVA实现得出数组中出现最有效(频率最高)元素的下标
public class Test2 { public static void main(String args[]){
int a[]={-7,5,-1,3,-5,5,0};
int i,j,t,temp1,temp2;
for(t=0;t<a.length-1;t++){
temp1=0;
temp2=0;
for(i=0;i<=t;i++){
temp1+=a[i];
}
for(j=t+1;j<a.length;j++){
temp2+=a[j];
}
if(temp1==temp2){
System.out.println(t);
}
}
}
}
temp1+=a[i];
}
* 数组中的“平衡点”
*/
public class ArrayBalance { public static void main(String[] args) {
int[] arr = {-7, 5, -1, 3, -5, 5, 0};
System.out.println(Arrays.toString(arr)); Integer[] balances = getBalances(arr); if (balances.length == 0) {
System.out.println("这个数组没有平衡点。");
} else {
System.out.println("平衡点:" + Arrays.toString(balances));
}
} private static Integer[] getBalances(int[] arr) {
ArrayList<Integer> balances = new ArrayList<Integer>();
for (int i = 0; i < arr.length - 1; i++) {
if (left(arr, i) == right(arr, i)) {
balances.add(i);
}
}
return balances.toArray(new Integer[balances.size()]);
} private static int right(int[] arr, int position) {
int sum = 0;
for (int i = position + 1; i < arr.length; i++) {
sum += arr[i];
}
return sum;
} private static int left(int[] arr, int position) {
int sum = 0;
for (int i = 0; i <= position; i++) {
sum += arr[i];
}
return sum;
}
}