- int approximate(int * pArry, int len)
- {
- int * cum = 0;
- int * realarry = newint[len + 1];
- realarry[0] = 0;
- cum = realarry + 1; //cum[-1] = 0
- //累计pArry[0....i]的和存放于cum[i]中
- for (int i = 0; i < len; i++)
- {
- cum[i] = cum[i - 1] + pArry[i];
- }
- sort(cum, cum + len); //对cum排序
- int iMin = cum[1] - cum[0];
- for (int k = 1; k < len; k++)
- {
- iMin = min(iMin, cum[k] - cum[k - 1]); //返回相邻两个元素差值最小的
- }
- return iMin;
- }