题目
golang力扣leetcode 1219.黄金矿工
原因
今天在刷题的时候,遇到一个现象,本地跑测试全部通过,一提交就错错错,非常离谱
然后我就去跟官方答案各种比对,最后发现是因为我的变量写在全局,这会造成什么影响呢?golang中全局变量不都是为零值吗,我在函数入口输出result结果是60,wdf??全局变量什么时候初始化成60了,后面我通过defer把result赋值为0,一提交,ac,wdf??果然是全局变量的问题。
经过无数次的提交测试与百度,终于发现,leetcode的判定规则:每道题目你提交之后所用的测试用例共享全局变量,这就说得通了,本地跑的通,是因为本地就一组样例,这个时候在本地运行的时候,每次都初始化全局变量,而提交是在服务器跑的,多组样例一起传参,全局变量只会初始化一次,这就是这题result放在全局变量会错误的原因.