今天遇到了一个比较有意思的问题,针对一个整数数组,找到一个位置,该位置左边的和右边的和相等,例如数组为[3,-1,2,9,-7]则位置为2,0位置和1位置相加为2,3位置和4位置相加为2,所以可以实现,很多人都可以解决,以下为我的代码(python):
def seperate(array):
length = len(array)
if length<2:
return -1;
right = 0
for i in xrange(1,length):
right+=array[i]
left = 0
for i in xrange(0,length-2):
left += array[i]
right -= array[i+1]
if left == right:
return i+1
return -1
时间复杂度为o(n),空间复杂度为o(1)