【算法题】找出整形数组中最小的差距

有一道算法题是这样的,有一个非空整形数组,包含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时,就是返回最小值

posted on 2023-02-16 15:23  新西兰程序员  阅读(27)  评论(0编辑  收藏  举报