题目:TapeEquilibrium
思路:
- 细心观察会发现,其实每次两个值的差delta就是上一个差减去2倍的下一个数
- 举个路子说明,比如数组
A=[3, 1, 2, 4, 3]
,第一个差值是|3-10|=7,第二个差值是|4-9|=5,其实5=7-2*A[1]
,那么下一个差值就是|5-2*A[2]|=1
- 注意耗时就行
解答:
js scilab">js-function">js-keyword">function js-title">solutionjs-params">(A) {
var js-built_in">sum = js-transposed_variable">A.reduce(js-function">js-keyword">functionjs-params">(a,b){js-title">return js-title">a+js-title">b})
var js-built_in">min = js-transposed_variable">Math.js-built_in">abs(js-built_in">sum-js-number">2*Ajs-matrix">[js-number">0])
js-keyword">for(var p = js-number">0 ; p < js-transposed_variable">A.js-built_in">length-js-number">1;p++){
js-built_in">sum -= js-number">2*Ajs-matrix">[p]
var delta = js-transposed_variable">Math.js-built_in">abs(js-built_in">sum)
js-keyword">if(delta < js-built_in">min){
js-built_in">min = delta
}
}
js-keyword">return js-built_in">min
}