剑指Offer每日六题(JAVA版)之第二天

斐波那契数列:

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

n<=39

解答:

这个是一个最简单的斐波那契题目,斐波那契特点:后一个数是前两个数的和

public class Solution {
    public int Fibonacci(int n) {
        int []F = new int[100];
        F[0] = 0;
        F[1] = 1;
        for(int i=2;i<=n;i++)
            F[i] = F[i-1]+F[i-2];
        return F[n];
    }
}

跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)

解答:

这个题目我们写出几个数,就会发现其实就是一个斐波那契数列的变换,就不多说了

public class Solution {
    public int JumpFloor(int target) {
        int F[] = new int[100];
        F[0] = 0;
        F[1] = 1;
        F[2] = 2;
        for(int i=3;i<=target;i++)
            F[i] = F[i-1]+F[i-2];
        return F[target];
    }
}

变态跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

解答:

这个题目写出一些个数会发现也是一个斐波那契数列

public class Solution {
    public int JumpFloorII(int target) {
        int sum[] = new int[100];
        sum[0] = 0;
        sum[1] = 1;
        sum[2] = 2;
        sum[3] = 4;
        for(int i=4;i<=target;i++){
            for(int j=0;j<i;j++)
            {
                sum[i]=sum[i]+sum[j];
            }
            sum[i] = sum[i]+1;
        }
        return sum[target];
    }
}

矩形覆盖

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

解答:

扫描二维码关注公众号,回复: 4907109 查看本文章

这个题目是一个DP的题目,解答过程晚上加上去

public class Solution {
    public int RectCover(int target) {
        int F[] = new int[100];
        F[0] = 0;
        F[1] = 1;
        F[2] = 2;
        for(int i=3;i<=target;i++)
        {
            F[i] = F[i-1]+F[i-2];
        }
        return F[target];
    }
}

二进制中1的个数

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。

解答:

这个题目主要使用到了位运算

public class Solution {
    public int NumberOf1(int n) {
        int ans= 0;
        while(n!=0)
        {
            ans++;
            n = n&(n-1);
        }
        return ans;
    }
}

数值的整数次方

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

解答:

这个题目主要用到了库函数

public class Solution {
    public double Power(double base, int exponent) {
        return Math.pow(base,exponent);
  }
}

猜你喜欢

转载自www.cnblogs.com/PoorGuy/p/10265114.html