读书人

一个小面试题?整数数组求和有关问题

发布时间: 2014-04-26 16:32:50 作者: rapoo

一个小面试题?整数数组求和问题
随便给一个整数数组,判断前k-1个数之和与后面余下的数之和是否相等(k未知!)。相等就返回k值索引,否则返回-1。
例如:给定数组{1,2,3,4,6,4}。其中m=6,前k-1个数之和为10=1+2+3+4.后k...m个数之和为4+6=10.
即1+2+3+4=6+4=10,返回索引号k.

这个问题怎么解?求教算法高手!


[解决办法]
int half_sum_pos(int *a,int n)
{
int i,sum,halfsum;
sum=halfsum=0;
for(i=0;i<n;i++)
sum+=a[i];
for(i=0;i<n;i++)
{
halfsum+=a[i];
if(halfsum==sum/2)return i;
}
return -1;
}

读书人网 >软件架构设计

热点推荐