Leetcode与本地结果不一致问题解决及分析

Leetcode与本地结果不一致问题解决及分析

本问题仅限于Java,其它语言可以根据此思路自行排查

问题起因

​ 一道dfs题目,因为C语言的习惯,做这种题我会设置一堆全局变量,所以Java中就设置了比较多的static变量(虽然没有必要)。最终交题后,给出的错误样例在本地确实正确的结果。

​ 搜了一下,最后将static变量全部换成实例变量就过了。第二次碰见这种情况了比较恼火,随意决定弄清为什么。

测试

​ 因为这道题涉及到的变量比较多,不能一下子看出来是哪个变量除了问题,就一直把某些变量设成static,某些设成成员变量去试。最终把问题锁定到了两个累加的变量上(成员变量),此时其他变量均为static修饰,这两个累加变量任何一个设置为static将导致结果不一致。

​ 最后猜测是因为leetcode去测用例的时候,只加载了一次Solution类,这俩个累加变量在每组样例的测试中没有清零,导致结果不一样。最后将这两个变量设置static,手动在方法开头清零,最终通过。猜想基本正确。

总结

​ 在leetcode上的做题习惯跟别的oj有很大不同,基本不会涉及到多组输入清零问题,所以慎用static变量即可避免此问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容