for(int i=4; i<=m; i++) { num[i]=num[i-1]+num[i-2]+num[i-3]; }
假如我要求m=10万,时间太长了,有没有办法优化?
这个不是递归,时间性能已经够了,空间性能太差。可以只用4个变量。m[i%4]=m[(i-1)%4]+...
矩阵快速幂了解下
还有其他循环没有?有的话可以用双指针
for(int i=4 j=m;i<m;i++ j--)
这样时间复杂度只有o(m-4).