LeetCode代码Debug中常见的错误以及可能的原因

有的时候简单的用例通过了 但是提交却无法AC:
这说明代码大体上没有问题 但是一些corner case没有办法解决。
虽然有一些小问题 但有时候不代表是真的“小问题” 还是需要注意一下,看看是不是遗漏了一些最前面的边界条件等等。

Syntax错误:
这种错最好定位和修改 但是前提是你要对Java各种API了如指掌。

Wrong Answer错误:
这个错误是显而易见的 就是从头到尾 屁都不对。
这种错误很难定位 可能是某些地方的“小错” 可能是某些地方的“大错”。
解决方法就是看答案 然后去猜可能是在哪里出问题。然后在那个地方打印一下 看看是不是自己所想。
如果根本也猜不出来是哪个地方出了问题,就从上到下输出 看看变化过程是不是自己想的那种。(所以掌握好输出很重要 比如输出Array 输出List 输出Hash Map等等)

TLE错误:
time limit exceed, 这种错误很大可能是因为代码中循环种有死循环 因此也要在循环前后输出东西看看能不能跳出循环。
当然 有的时候也是因为代码时间复杂度属实太烂 需要重新换一种方法(比如何理利用Java数据结构 或者记忆化搜索(DP,Backtracking等等))

MLE错误:(outOfMemoryError)
Memory Limit Exceed:这个错误 很有可能是递归的时候递归空间过深。

Null Pointer错误:
某些地方明明是空 但是后续还是对这个空对象调用了方法。所以最好看一下究竟是哪些地方可能出现空,加上一个判断条件就行了

其他的问题以后随时补充。

posted @ 2020-12-03 12:50  EvanMeetTheWorld  阅读(172)  评论(0)    收藏  举报