【发布时间】:2020-12-01 19:51:18
【问题描述】:
给定一个整数数组,从最小的数X开始,使得数组元素与X相加,总和总是大于等于1
如果给定数组是{-2, 3, 1, -5} 例如,在上面的数组中,X应该是4
解释:如果,我们从 4 开始,然后加上第一个数字 -2,数组和变为 4 + (-2) = 2(即 >0)现在将下一个元素 3 添加到当前和即 2, 2+ 3 = 5 (>0) 将下一个元素 1 添加到新的总和 5 得到,5 + 1 = 6 (>0) 将最后一个元素 -5 添加到新的总和 6 得到 6 + (-5) = 1,即再次大于零。
这是我目前的代码,但它不起作用:
function minX(arr) {
var sum = 0
var runningSum= 0
for (var i=0; i < arr.length; i++){
if ((arr[i] + sum) <= 1){
var diff = arr[i] + sum
var someNumber = 1 - diff
sum = someNumber + sum
}
runningSum += arr[i]
}
return sum
}
【问题讨论】:
标签: javascript arrays algorithm sum