题目:给定一个int数组,求该数组的连续子数组的和最接近0.
假设现在arr[i..j]这一段连续的子数组的和为最终结果,它等价于sum[j]-sum[i-1]的值。
其中sum[j] = arr[0] + arr[1] + .. +arr[j];
要求arr[i..j]的和最接近0,即求sum[j]与sum[i-1]这两个值相邻最近。
因此可以,考虑计算出sum数组,并对该数组进行排序。
排序的结果sum[k1], sum[k2], ....sum[kn]
再遍历一遍,取出两个相邻的最近的sum[s], sum[e].最终结果则为s与e之间或者e与s之间的数组元素。
本文介绍了一种高效算法来找到一个整数数组中连续子数组的和,使得这个和最接近于零。通过计算累积和并对其进行排序,然后找出相邻累积和之间的最小差值,以此确定目标子数组。
2234

被折叠的 条评论
为什么被折叠?



