力扣 三步问题动态规划加滚动数组
面试题 08.01. 三步问题
三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。
示例1:
输入:n = 3
输出:4
说明: 有四种走法
示例2:
输入:n = 5
输出:13
提示:
n范围在[1, 1000000]之间
1.纯动态规划
int waysToStep(int n){int dp[n];if(n==1)return 1;if(n==2)return 2;dp[0]=1;dp[1]=2;dp[2]=4;for(int i=3;i<n;i++){dp[i]=(((dp[i-1]+dp[i-2])%1000000007+dp[i-3])%1000000007);}//注意取余的概念,如果被除数不大于除数的情况下对它的除数取余是不变的。return dp[n-1];}
2.动态规划加滚动数组
定义三个状态即可
int waysToStep(int n){int first,second,third;if(n==1)return 1;if(n==2)return 2;first=1;second=2;third=4;for(int i=3;i<n;i++){int temp=third;//其为局部变量即可,因为它只是在循环体中才会用到third=((first+second)%1000000007+third)%1000000007;//对third取余,则first,second也会自动取余了first=second;second=temp;}return third;}
力扣 三步问题动态规划加滚动数组相关推荐
- 力扣198.打家劫舍---动态规划与滚动数组
力扣198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动 ...
- 力扣刷题记录-动态规划问题总结
百度百科里对于动态规划问题是这样解释的: 在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.因此各个阶段 ...
- LeetCode 面试题 08.01. 三步问题 (动态规划)
面试题 08.01. 三步问题 解法1(动态规划) 分析出递推式:f(n) = f(n - 1) + f(n - 2) + f(n - 3) class Solution {public int wa ...
- 力扣解法汇总592-分数加减运算
目录链接: 力扣编程题-解法汇总_分享+记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣 ...
- LeetCode第 57 场力扣夜喵双周赛(差分数组、单调栈) and 第 251 场力扣周赛(状态压缩动规,树的序列化,树哈希,字典树)
LeetCode第 57 场力扣夜喵双周赛 离knight勋章越来越近,不过水平没有丝毫涨进 1941. 检查是否所有字符出现次数相同 题目描述 给你一个字符串 s ,如果 s 是一个 好 字符串,请 ...
- 【力扣】【初级算法】【数组10】有效的数独
题目 请你判断一个 9 x 9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. 数字 1-9 在每 ...
- 力扣 560. 和为 K 的子数组
题目 给你一个整数数组 nums 和一个整数 k ,请你统计并返回该数组中和为 k 的连续子数组的个数. 示例 输入:nums = [1,1,1], k = 2 输出:2 输入:nums = [1,2 ...
- 力扣 713. 乘积小于K的子数组
题目 给定一个正整数数组 nums和整数 k . 请找出该数组内乘积小于 k 的连续的子数组的个数. 示例 输入: nums = [10,5,2,6], k = 100 输出: 8 解释: 8个乘积小 ...
- python【力扣LeetCode算法题库】1013-将数组分成和相等的三个部分(贪心)
将数组分成和相等的三个部分 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] ...
最新文章
- 学术圈竞赛圈大讨论,深度学习真的比不过GBDT模型吗?
- 一种投影法的点云目标检测网络
- 四十八、第二份国外的Python考试(下篇)
- SQLLite (三):sqlite3_get_table,sqlite3_free_table
- 最大流自用模板(例题:HDU1532)
- Nginx----OpenResty
- [设计模式] ------ 简单工厂模式
- 什么是气泡图?怎样用Python绘制?怎么用?终于有人讲明白了
- 计算机研究生可以参加哪些比赛?
- oracle数据库表空间追加数据库文件方法
- ZOJ 3229 有上下界最大流
- 各国股市开盘与收盘时间
- 数据结构之简单排序算法
- 01-SQL基本语句
- les有学计算机的吗,拷问LES大涡模拟
- python官网下载非常慢解决方法
- Scrapy爬虫之网站图片爬取
- (转载)【笨木头Lua专栏】基础补充07:协同程序初探
- 关于MLCC陶瓷电容,这篇总结得太全面了
- 电力工程设计一次回路—(330~500KV超高压配电装置)一个半断路器接线方式