• 剑指offer(10)—— 斐波那契数列以及跳台阶问题


    总结

    2^(n-1)可以用位移操作进行: 1<< (n-1)
    如果递归不好思考的话,可以找规律,代码很简单

    斐波那契数列(10)

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

    n<=39

    public class Solution {
        public int Fibonacci(int n) {
            // 先判断n必须在范围内取值
            if(n > 39 && n <= 0) return 0;
            // 为1直接返回
            if(n == 1) return 1;
            
            int a = 0;
            int b = 1;
            int result = 0;
            for(int i = 2;i<=n;i++){
                result = a + b;
                a = b;
                b = result;
            }    
            return result;       
        }
    }
    

    跳台阶(10)

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

    public class Solution {
        public int JumpFloor(int target) {
            if(target == 1) return 1;
            if(target == 2) return 2;
            int a = 1;
            int b = 2;
            int result = 0;
            for(int i = 3;i<=target;i++){
                result = a + b;
                a = b;
                b = result;
            }
            return result;
        }
    }
    

    变态跳台阶

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

    class Solution {
        public int JumpFloorII(int target) {
            if(target == 1) return 1;
            return (int)Math.pow(2,target-1);
        }
    }
    
    public class Solution {
        public int JumpFloorII(int target) {
            if(target == 1) return 1;
           // return (int)Math.pow(2,target-1);
            return 1<<(target -1);
        }
    }
    
  • 相关阅读:
    4.回归类算法目标值连续型
    springcloud笔记
    5.聚类算法kmeans
    FastdFS文件系统
    ElasticSearch
    cors解决跨域
    Swagger
    miaosha2:高并发抢购方案
    关于javascript中的constructor与prototype
    eclipse布署项目到weblogic时启动两次的问题
  • 原文地址:https://www.cnblogs.com/benjieqiang/p/11404019.html
Copyright © 2020-2023  润新知