// you can also use includes, for example:
// #include <algorithm>
#include<limits.h>
int solution(vector<int> &A) {
// write your code in C++98
if(A.size() < 2) return 0;
//...precalculate the sum array
vector<int> sum(A.size()+1, 0);
for(int i = 0; i < A.size(); ++i)
sum[i+1] = sum[i]+A[i];
//...using sum array to get the min diff in O(n) time
int minDiff = INT_MAX;
for(int i = 1; i < A.size(); ++i)
minDiff = min(minDiff, abs(sum[A.size()]-2*sum[i]));
//...return the result
return minDiff;
}[codility]Tape-Equilibrium
最新推荐文章于 2019-08-17 11:00:05 发布
本文介绍了一种使用前缀和及绝对值最小化技术,在给定整数数组中找到两个子集间元素总和的最小差异的方法。通过预计算前缀和数组并遍历寻找最优划分点,最终返回最小差异值。

296

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



