7-2 棒球问题改进建议
来源:7-2 棒球比赛-代码实操

慕雪3391059
2019-08-20
看了老师的代码,觉得可以改进一下?
- 传入的就是一个数组,无需再定义一个新数组去 push 和 pop,增加内存;
- 如果定义新数组,在每次 pop 和 push 时都可以求出当前的和,没必要再遍历一次。
以上只是我的拙见,顺便贴上自己的代码:
var calPoints = function (ops) {
var count = 0
for (let i = 0; i < ops.length; i++) {
var cur = ops[i]
if (cur === '+') {
ops[i] = parseInt(ops[i - 1]) + parseInt(ops[i - 2])
count += ops[i]
} else if (cur === 'D') {
ops[i] = ops[i - 1] * 2
count += ops[i]
} else if (cur === 'C') {
count -= ops[i - 1]
ops.splice(i - 1, 2)
i -= 2
} else {
count += parseInt(cur)
}
}
return count
}
写回答
2回答
-
旋涡鸣人_
2019-10-04
佩服你的勇气,还给老师提建议。。。当然有问题的话 提是应该的。。。 但是显然你说的不对
你写的这个有问题。。。
i - 1
i - 2
这个是不准确的。。。 必须去最后2个 你这个某种场景不满足
另外 我说一下:老师的精妙之处在于是一种思想:
你必须体现这个数据结构 证明你脑子是清晰的,已经说明了要用数组作为堆栈的数据结构。不要混淆了入参和出参。编程大忌
还有要用switch 我觉得switch更清晰一点另外一点遍历循环能用方法不要用表达式,原因就不多说了。。。
00 -
快乐动起来呀
2019-08-22
你去leetcode提交下代码看看结果怎么样?
022019-08-23
相似问题