【发布时间】:2021-03-13 17:30:14
【问题描述】:
问题是:
从给定的整数数组和任意初始值 x 开始。从左到右计算 x 加上每个数组元素的运行总和。运行总和决不能低于 1。确定 x 的最小值。
示例:
如果数组是:arr = [-2,3,1,5] 返回值为 x = 4。
到目前为止,我的代码没有通过任何测试用例,我做错了什么? :
function minX(arr) {
var initialSum = 0
var runningSum= 0
for (var i=0; i < arr.length; i++){
if ((arr[i] + sum) <= 1){
var diff = arr[i] + sum
var some = 1 - diff
initialSum = some + sum
}
runningSum += arr[i]
}
return initialSum
}
【问题讨论】:
-
我不懂规则。如果我尝试按照他们写在我脑海中的方式来关注它们,我认为解决方案不会是“4”。你能把它们写得更明确吗?你是什么意思“确定1的最小值”?这句话对我来说真的没有意义......
-
@AlexanderNied 这些是给定的规则,但它是这样的。我们需要从 x 的值 4 开始,因为让我们以数组中的第一个元素 (-2) 为例。 4 + (-2) = 2 大于 1。任何小于 4 的值都会将总和降至 1 或更小。这是我们需要在整个数组求和过程中维持的条件
-
所以你的意思不是“确定 1 的最小值”,你的意思是“确定
x的任意初始值,这样运行总和就不会出现低于 1",对吧?因为 1 是 1——它不能有 1 以外的值。 -
@AlexanderNied 正确
-
只是一个简单的问题,为什么在示例中 x 应该是 4?作业说“运行总和永远不能低于 1”,所以它是 1 是允许的。从我所看到的 x 应该是 3 对于给定的例子。
标签: javascript algorithm sum