[LeetCode] 获取生成数组中的最大值

148 阅读1分钟

获取生成数组中的最大值

解题思路

根据题意生成对应的数, 并返回其中的最大值即可 需要注意下当 n为0时的情况. 可以通过位运算来加速一下

代码

var getMaximumGenerated = function (n) {
  if (n === 0) return 0
  if (n === 1) return 1
  const nums = [0, 1]
  for (let i = 2; i <= n; i++) {
    if (i & 1) {
      const idx = i >> 1
      nums[i] = nums[idx] + nums[idx + 1]
    } else nums[i] = nums[i / 2]
  }
  return Math.max(...nums)
}