天天看點

斐波那契數列(三種實作方法)

//斐波那契數列
		// 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;
		}
           

繼續閱讀