码迷,mamicode.com
首页 > 编程语言 > 详细

算法练习LeetCode初级算法之动态规划

时间:2019-02-08 15:54:19      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:解法   turn   ==   ons   private   leetcode   tair   mil   爬楼梯   

  • 爬楼梯:斐波那契数列

    假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

    每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

    注意:给定 n 是一个正整数。

  • 非递归解法

    class Solution {

    public int climbStairs(int n) {

        if (n==1) {

                return 1;

            }

        if (n==2) {

                return 2;

            }

        int n1=1,n2=2;

        for (int i = 0; i <n-2; i++) {

                int m=n1+n2;

                n1=n2;

                n2=m;

            }

    return n2;

    }

    }

  • 递归解法

    class Solution {

        int[] result=null;

    public int climbStairs(int n) {

        result=new int[n+1];

    Arrays.fill(result, -1);

    f(n);

    return result[n];

    }

    private void f(int X) {

        if (result[X]!=-1) {

                return;

            }

        if (X==0||X==1) {

                result[X]=1;

                return;

            }

            f(X-1);

            f(X-2);

        result[X]=result[X-1]+result[X-2];

        }

    }

算法练习LeetCode初级算法之动态规划

标签:解法   turn   ==   ons   private   leetcode   tair   mil   爬楼梯   

原文地址:https://www.cnblogs.com/GavinYGM/p/10356199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!