【算法题】找出整形数组中最小的差距
有一道算法题是这样的,有一个非空整形数组,包含N个整数, 也就是数组A[N]包括N个元素 => A[0], A[1], A[2], A[3],A[4]....A[N-1]
现在有一个0-N之间的中间数 (0 < P < N), 把这个整形数组分为2部分, 这2部分分别是
A[0], A[1], A[2], A[3], A[4], .......A[P-1] 和另一部分 A[P],A[P+1],A[P+2]....A[N-1] => 然后我们计算这两部分各自的和的差值的绝对值,也就是说
| (A[0] + A[1] + A[2] + A[3] + A[4] ......+A[P-1] ) - (A[P] + A[P+1] +....A[N-1]) | 根据P的不同,求这个绝对值的最小值, 返回这个绝对值对应是最小值的P
比如
A[0] = 3
A[1] = 1
A[2] = 2
A[3] = 4
A[4] = 3
- P = 1, difference = |3 − 10| = 7
- P = 2, difference = |4 − 9| = 5
- P = 3, difference = |6 − 7| = 1
- P = 4, difference = |10 − 3| = 7
显然,P=3时,就是返回最小值