于是我想到这个优化后的方案:在初始化对象时就计算出一个 sumToNumber 的数组,表示“从 0 到 n 的和”,这样要计算 sumRange(i, j)的时候,就只需要sumToNumber[j] - sumToNumber[i-1]就好了,最后再处理一下边际情况。
因为假设数组不会变化,所以无需更新数组内容。
完美通过测试!
通过这个题目,我对时间复杂度和空间复杂度的印象又加深了,这是单纯看算法书不能提升的。
以上,就是我在学习编程、打磨手艺方面的经验。
于是我想到这个优化后的方案:在初始化对象时就计算出一个 sumToNumber 的数组,表示“从 0 到 n 的和”,这样要计算 sumRange(i, j)的时候,就只需要sumToNumber[j] - sumToNumber[i-1]就好了,最后再处理一下边际情况。
因为假设数组不会变化,所以无需更新数组内容。
完美通过测试!
通过这个题目,我对时间复杂度和空间复杂度的印象又加深了,这是单纯看算法书不能提升的。
以上,就是我在学习编程、打磨手艺方面的经验。
内容版权声明:除非注明,否则皆为本站原创文章。