之前写一个机试题,用的C++,有一个递归,想用一个全局变量记录一个总和,写的是 static int sum=0
造成每次过完一个用例,第二个都会报错,原因就是机试题的测试用例基本都是一个程序连续调用的,例如:
fun(参数,参数、、、) //用例一
fun(参数,参数,、、)//用例二
、、、、
所以当跑完第一个用例时,sum变为了4,执行第二个用例,sum就不是从0开始,而是从4开始了,也就造成了错误。
今天在leetcode上写java,也遇到了同样的问题。
由于习惯了写c,在java中经常使用 public static这样的申明来表示“全局变量”
也就造成了上述错误,解决办法是使用正常的public int sum这样的申请,当要使用时,使用this.sum来使用