斐波那契数列(三种实现方法)

//斐波那契数列
		// 1.平均时间复杂度O(n^2),占用的额外空间O(n)
		function fib(n){
			if(n===1||n===2){
				return 1;
			}else{
				return fib(n-1) + fib(n-2);
			}
		}
		//2.平均时间复杂度O(n),占用的额外空间O(n)
		function fib(n){
			let res = [1,1];
			for(let i=2;i<n;i++){
				res[i] = res[i-1] + res[i-2];
			}
			return res[n-1];
		}
		//3.平均时间复杂度O(n),占用的额外空间O(1)
		function fib(n){
			let res,a,b;
			res = a = b = 1;
			for(var i=3;i<=n;i++){
				res = a + b;
				a = b;
				b = res;
			}
			return res;
		}

猜你喜欢

转载自blog.csdn.net/hahahahahahahaha__1/article/details/83217018