黑白梦

从邻接表存储图提交错误,体验 LeetCode 全局变量无法重新初始化问题

在做一道图相关的题目时,使用了数组模拟链表,进行邻接表存储图的形式,代码如下:

let h = [], e = [], ne = [], idx = 0

这段代码习惯性地声明在了全局变量中。

这个代码基本逻辑是比较熟悉的,按理说根据曾经做过的方法照样写就不会错的,但是却始终无法通过全部用例。

最后把这段数组的声明提取到入口函数中,发现直接执行通过了。

搜索了一下,才发现 LeetCode 提交代码时,代码中的全局变量有时可能无法完成初始化,仍保留上次的值。才想起来之前就看过类似的说法,这次算是亲自体验了一把。

所以要么不使用全局变量,要么在执行的入口函数中再次初始化所有的全局变量。

有时候使用了全局变量,因业务逻辑没有报错,但是因为未初始化,使动态数组变可能得很大,也会极大影响执行效率。

本文收录于专栏
记录 JavaScript 刷题时用到的一些语法、代码片段、工具、经验等