LeetCode(3)--2620. 计数器

118 阅读1分钟

给定一个整型参数 n,请你编写并返回一个 counter 函数。这个 counter 函数最初返回 n,每次调用它时会返回前一个值加 1 的值 ( n ,  n + 1 ,  n + 2 ,等等)。 示例 1:

输入:
n = 10 
["call","call","call"]
输出: [10,11,12]
解释:
counter() = 10 // 第一次调用 counter(),返回 n。
counter() = 11 // 返回上次调用的值加 1。
counter() = 12 // 返回上次调用的值加 1。

示例 2:

输入:
n = -2
["call","call","call","call","call"]
输出: [-2,-1,0,1,2]
解释: counter() 最初返回 -2。然后在每个后续调用后增加 1

 

提示:

  • -1000 <= n <= 1000
  • 0 <= calls.length <= 1000
  • calls[i] === "call"

 

参考方案:

/**
 * @param {number} n
 * @return {Function} counter
 */
var createCounter = function(n) {
    return function() {
      return n++
    };
};

/** 
 * const counter = createCounter(10)
 * counter() // 10
 * counter() // 11
 * counter() // 12
 */

 

方案提示:

i++和++i的区别:

1、i++ 返回原来的值,++i 返回加1后的值。

2、i++ 不能作为左值,而++i可以。

3、i++前者是先赋值,然后再自增;++i后者是先自增,后赋值。

根据上述代码,输入n=10,如果是n++, 则输出[10,11,12];如果是++n,则输出[11,12,13]

 

LeetCode运行:

leetcode.cn/problems/co…