NC268. 矩形覆盖
描述
输入描述
2*1的小矩形的总个数n输出描述
覆盖一个2*n的大矩形总共有多少种不同的方法(从同一个方向看)示例1
输入:
0
输出:
0
示例2
输入:
1
输出:
1
示例3
输入:
4
输出:
5
Rust 解法, 执行用时: 2ms, 内存消耗: 232KB, 提交时间: 2021-03-21
struct Solution{ } fn fib(n: i32, i: i32, a: i32, b: i32) -> i32 { if i == n {return a;} else {return fib(n, i+1, b, a+b);} } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param number int整型 * @return int整型 */ pub fn rectCover(&self, number: i32) -> i32 { // write code here if number == 0 {return 0;} fib(number, 0, 1, 1) } }
C++ 解法, 执行用时: 2ms, 内存消耗: 352KB, 提交时间: 2021-03-12
class Solution { public: int rectCover(int n) { vector<int> dp(n+1,0); dp[1]=1; dp[2]=2; for(int i=3;i<=n;++i) { dp[i]=dp[i-1]+dp[i-2]; } return dp.back(); } };
C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-05-25
class Solution { public: int rectCover(int number) { vector<int> fib(number+1,0); fib[1]=1; fib[2]=2; for(int i=3;i<=number;i++) { fib[i]=fib[i-1]+fib[i-2]; } return fib[number]; } };
C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-04-18
class Solution { public: int rectCover(int number) { //变相的斐波那契数列 // if(number==1) return 1; // if(number==2) return 2; // return rectCover(number-1)+rectCover(number-2); // } int a=1; int b=2; int c=0; if(number==1) return a; if(number==2) return b; for(int i=3;i<=number;i++){ c=a+b; a=b; b=c; } return c; } };
C++ 解法, 执行用时: 2ms, 内存消耗: 356KB, 提交时间: 2021-03-20
class Solution { public: int rectCover(int number) { if(number == 1 || number ==2 || number ==0) return number; int a =1,b =2,c; for(int i =2;i<number;i++){ c = a+b; a = b; b = c; } return c; } };