1、递归法,时间复杂度:O(n*n);
2、普通循环算法:时间复杂度:O(n);
3、矩阵法:时间复杂度:O(logn);
前2个方法,都比较简单,刷题时候用过了,但是这次刷题,属于Fibonacci加强版,对时间性能很有要求,使用1或者2方法一直ac不了,所以看了矩阵求解方法。这个方法看了一个下午才明白,所以一定要记录的。
3.1、先看一下矩阵法的推导过程,也就是如何把一个Fibonacci求解转为对矩阵的求解过程。
3.2、牛客网原题如下:
1、递归法,时间复杂度:O(n*n);
2、普通循环算法:时间复杂度:O(n);
3、矩阵法:时间复杂度:O(logn);
前2个方法,都比较简单,刷题时候用过了,但是这次刷题,属于Fibonacci加强版,对时间性能很有要求,使用1或者2方法一直ac不了,所以看了矩阵求解方法。这个方法看了一个下午才明白,所以一定要记录的。
3.1、先看一下矩阵法的推导过程,也就是如何把一个Fibonacci求解转为对矩阵的求解过程。
3.2、牛客网原题如下: