【剑指offer❤️】10.4矩形覆盖

在这里插入图片描述
还是先找关系

N方法
11
22
33
45

关系式 N = N-1 + N-2

JAVA:

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️

public class Solution {
    public int RectCover(int target) {
        int[] save ={0,1,2};
        if(target>=0 && target <3)
            return save[target];
        int all = 0;
        int first = 2;
        int end =1;
        for(int i = 3;i<=  target;i++){
            all = first + end;
            end = first;
            first = all;
        }
        return all;
    }
}

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️

从斐波那契那题到现在这个都是考察的斐波那契不要用递归(效率低),用迭代。
就是找n与最后所求的f(n)的关系,就和求时间复杂度最内层循环的次数一样
斐波那契:f(n)=f(n-1)+f(n-2)
小青蛙:f(n)=f(n-1)+f(n-2)
super小青蛙:f(n)=f(n-1)+2*f(n-2)
矩阵:f(n)=f(n-1)+f(n-2)
通解:三个三连
(1)上来三连
        n<=0
       return 0;
        n==1
        return1
        n==2;
        return 2;
(2)再来变量三连
    fn1=2;/fn1=1; 看题
    fn2=1;
    res=0;
(3)一个for循环三连
for(int i=3;i<=n;i++){
    res=f(n)的表达式;
    fn2=fn1;
    fn1=res;  } 
    //有的人会在这里看了很多人的代码,
    发现有的相反,是fn1,fn2的定义不一样  我定义的fn1是在下次循环的时候,
    fn1代表了(n-1),
          fn2是在下次循环的时候,fn2代表了(n-2),
            如果 fn1=fn2 那么无所谓,如果不相等,就要自己弄明白
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值