每日打卡:爬楼梯
2020-07-18 04:22
106 查看
打卡:爬楼梯
心情
周末观影《她比烟花寂寞》。导演先叙述姐姐的故事,观众视角先入为主地给妹妹贴了个自私狂妄的标签。当镜头转到妹妹的世界时,才发现她是如此的令人心疼。她的一生,“先成为不朽,然后死去!”
读题
leetcode: 70. 爬楼梯
描述:
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
测试用例:
输入: 3
输出: 3
注意:给定 n 是一个正整数。
列了前几阶,这不就是斐波那契数列嘛。
反过来想,第n阶的爬法:第n-1阶+1 和 第n-2阶+2,f(n)=f(n-1)+f(n-2)
思路
做个循环,从第一阶第二阶开始递推,返回第n阶的值
实现
public int climbStairs(int n) { int[] nums = new int[n+1]; //第0阶-从后向前假设出来的 nums[0] = 1; //第1阶-按照可能性算出来的 nums[1] = 1; for (int i = 2; i < n+1; i++) { //最后一阶=倒数第二阶+倒数第三阶 的所有方法 nums[i] = nums[i-1] + nums[i-2]; } return nums[n]; }
看起来就很简单嘛~
提交
这内存消耗的排名,看来数组都不能用了呀。
好吧,这内存消耗的排名我也是绝望了。
标答
public List<List<Integer>> threeSum(int[] nums) { public int climbStairs(int n) { double sqrt5 = Math.sqrt(5); double fibn = Math.pow((1 + sqrt5) / 2, n + 1) - Math.pow((1 - sqrt5) / 2, n + 1); return (int)(fibn / sqrt5); }
官方题解 直接用斐波那契数列的公式实现了。本想着把高数捡起来,才发现早已还给老师了。。。
相关文章推荐
- 何凯文每日一句打卡||DAY1~DAY3
- 何凯文每日一句打卡||DAY7
- 牛客网每日打卡-数据库基础-20160427
- 【每日打卡】Day11:第十届蓝桥杯 不同子串 C++实现
- 每日打卡 2017.04.02 博弈论专题
- 每日打卡 2017.05.01 尺取法
- 【每日打卡】Day28:最接近的三数之和 C++实现
- 基于JavaScript实现每日签到打卡轨迹功能
- 每日打卡:验证回文串
- 每日打卡 2017.03.15 北大信科2017机试真题题解
- 【每日打卡】Day15:最佳加法表达式(大数运算)JAVA实现(部分超时)
- leetcode每日一题——T70. 爬楼梯(易):斐波那契公式
- 单片机每日打卡
- Python 每日学习打卡(12.24起)
- 2020每日学习8h打卡
- 每日打卡:从先序遍历还原二叉树
- 【每日打卡】Day1:全排列的C++实现
- 每日打卡 2017.04.16 前缀和
- 【每日打卡】Day24:下一个排列 C++实现
- 【每日打卡】Day26:较大分组的位置 C++实现