【发布时间】:2022-01-07 23:27:53
【问题描述】:
我在处理 Leetcode Problem 1770 时遇到了一些奇怪的行为,我希望有人能帮助我理解。
这是一个动态编程问题,需要您实例化一个长度为m 的二维数组。很简单。
奇怪的是,我生成二维数组的语法导致问题失败,但另一种语法通过了所有测试。据我所知,这两行输出的结果相同。
我的语法:
// const m = 3
let memo = new Array(m).fill(new Array(m).fill(-Infinity))
console.log({memo})
// stdout: {
// memo: [
// [ -Infinity, -Infinity, -Infinity ],
// [ -Infinity, -Infinity, -Infinity ],
// [ -Infinity, -Infinity, -Infinity ]
// ]
// }
替代语法:
// const m = 3
let memo = Array.from(Array(m), () => Array(m).fill(-Infinity))
console.log({memo})
// stdout: {
// memo: [
// [ -Infinity, -Infinity, -Infinity ],
// [ -Infinity, -Infinity, -Infinity ],
// [ -Infinity, -Infinity, -Infinity ]
// ]
// }
在我看来,两者的输出完全相同。然而,一个人通过了所有测试,什么没有通过。什么给了?
【问题讨论】:
标签: javascript algorithm multidimensional-array data-structures dynamic-programming