7-2 棒球问题改进建议

来源:7-2 棒球比赛-代码实操

慕雪3391059

2019-08-20

看了老师的代码,觉得可以改进一下?

  1. 传入的就是一个数组,无需再定义一个新数组去 push 和 pop,增加内存;
  2. 如果定义新数组,在每次 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更清晰一点

另外一点遍历循环能用方法不要用表达式,原因就不多说了。。。

0
0

快乐动起来呀

2019-08-22

你去leetcode提交下代码看看结果怎么样?

0
2
快乐动起来呀
回复
慕雪3391059
当个参考吧,不用太较真
2019-08-23
共2条回复

JavaScript版 数据结构与算法

填补前端同学的算法短板,掌握面试中最常见的算法与数据结构

2467 学习 · 395 问题

查看课程