昨天我被问到了这个问题。我需要编写一段代码,将数组分成两部分,使得这两部分之间的差值最小。
以下是我的代码,时间复杂度为O(n)
function solution(a) {
let leftSum = 0;
let rightSum = a.reduce((acc, value) => acc + value ,0);
let min = Math.abs(rightSum - leftSum);
a.forEach((item, i) => {
leftSum += a[i];
rightSum -= a[i];
const tempMin = Math.abs(rightSum - leftSum);
if(tempMin < min) min = tempMin;
})
return min;
}
但是如果输入数组长度为1000万,我该如何在分布式环境下解决这个问题呢?
我刚接触分布式编程,需要帮助。