这道题用蛮力搜索很简单,但我却花了不少时间,昨天下午写了一个搜索的代码,结果在第8个数据超时(用了5.4秒,java比c++效率低),然后我就优化了半天,改动了许多部分,结果还是过不了,今天中午来重新写了个动态规划的程序,原本以为动态规划会快许多,结果犯了一个低级错误!为了给动态规划方法作备忘录需要开的内存空间不是一般的大!写完后才发现这个错误,然后又把所写代码全部删掉,还原成跟昨天差不多的样子,随便一提交居然过了!
怎么过的呢?算法和昨天一模一样啊!
原来问题出在new语句!一开始我为了代码读起来容易写了个AP类(等差数列类),然后isBisquareAP()函数判断一个数列是否是Bisquare数列时参数用的是AP对象,这自然要先用new语句生成一个AP对象,在new语句上浪费了时间。
后来把AP类完全抛弃,程序就快了,所用时间大概是原来的70%
