有50级台阶,你每次可以走一阶或两阶,有多少种走法
程序列出所有可能
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class GoStairs {
private List<Integer> stepStlye = new ArrayList<Integer>();
public static final int STAIRS_COUNT = 10;
public void goStairs(int leftStairsCount) {
if (leftStairsCount - 1 >= 0) {
stepStlye.add(1);
leftStairsCount = leftStairsCount - 1;
goStairs(leftStairsCount);
leftStairsCount = leftStairsCount + 1;
stepStlye.remove(stepStlye.size() - 1);
}
if (leftStairsCount - 2 >= 0) {
stepStlye.add(2);
leftStairsCount = leftStairsCount - 2;
goStairs(leftStairsCount);
leftStairsCount = leftStairsCount + 2;
stepStlye.remove(stepStlye.size() - 1);
}
if (leftStairsCount == 0) {
System.out.println(Arrays.toString(stepStlye.toArray(new Integer[0])));
return;
}
}
public static void main(String[] args) {
GoStairs ladder = new GoStairs();
ladder.goStairs(STAIRS_COUNT);
}
}
分享到:
相关推荐
// 第二个台阶有两种走法:一步或两步 for (int i = 3; i ; ++i) { dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]; } return dp[N]; } ``` 这个函数首先初始化一个大小为N+1的动态规划数组,并设置基础情况。...
这是一个经典的斐波那契序列问题,每次可以向上走一阶或两阶,问到达第N阶有多少种不同的方式。可以使用动态规划来解决,设dp[i]表示到达第i阶的方案数,那么dp[i] = dp[i-1] + dp[i-2],因为到达第i阶要么从第i-1阶...
android高阶面试题,面试用的,平常积累11111111111111
18. **你有什么问题要问我们**:准备几个关于公司、团队或角色的问题,显示你对面试的投入和热情。 19. **如何处理团队冲突**:提供解决冲突的策略,强调沟通和协作的重要性。 20. **你的薪资要求**:基于市场调查...
标题 "golang 50k 高阶面试题" 指出了文章内容将围绕Go语言高级面试题的范围,尤其是针对有一定难度和深度的问题。描述 "go大厂都面试什么" 表明文章的内容会贴近那些一线科技公司(通常被称作大厂)在招聘Go语言...
题目描述:青蛙一次可以跳1级或2级台阶,求解跳上n级台阶有多少种跳法。 解答:这是经典的斐波那契数列问题。斐波那契数列的定义是F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2) (n>=2)。可以使用递归、动态规划或迭代方法...
此外,《编程之法:面试和算法心得》每一章都有“举一反三”和“习题”,以便读者及时运用所学的方法解决相似的问题,且在附录中收录了语言、链表、概率等其他题型。书中的每一道题都是面试的高频题目,反复出现在近...
如果你一下子不能确定面试者到底需要什么样的内容,你可以这样说:“有没有什么您特别感兴趣的范围?” 点评:企业以此来判断是否应该聘用你。通过你的谈论,可以看出你想的是如何为公司效力还是那些会影响工作的...
Java作为一门广泛使用的编程语言,其面试题涵盖了基础到高级的各个方面。对于Java开发者来说,了解和掌握这些知识点是提升职业能力的...通过深入学习并理解这些内容,将有助于你在Java面试中表现出色,提升成功几率。
想象一个有N级台阶的楼梯,每次你可以跳1级、2级或3级。问题要求计算出从地面到达最顶端有多少种不同的跳法。这个问题的核心在于找到一个递推关系或者动态规划的解决方案。 在编程中,动态规划是一种有效的方法来...
java高级软件工程师面试题大全及答,一些公司的面试题,对于正在找工作应对面试的朋友或许有点帮助。java高级软件工程师面试题大全及答,一些公司的面试题,对于正在找工作应对面试的朋友或许有点帮助
高级软件测试面试题大放送 本文总结了高级软件测试面试题,涵盖了软件测试的多个方面,包括数据类型、哈希算法、哈希冲突、内存管理和垃圾回收机制、拷贝机制、协程机制等。 一、列表和元组的区别 列表是动态的,...
【行为面试法】是一种广泛应用在招聘过程中的面试技巧,它主要通过询问候选人在过去的工作经历中具体的行为和决策,来评估其潜在的能力、性格特点和职业素养。以下将详细解析文档中提到的几个关键知识点: 1. **...
从你所在项目中挑一个你就有成就感的介绍 你的缺点和优点 有几个offer 你对加班怎么看 你有什么想问的 (没问任何技术上的问题 ) ---- 他跟我说好像周六也得打卡 他那边音质不太好 听不太清我也没追问 随缘了 零跑...
15个经典面试问题,可以让你面试无忧,轻松商场,面试是通过书面、面谈或线上交流(视频、电话)的形式来考察一个人的工作能力与综合素质,通过面试可以初步判断应聘者是否可以融入自己的团队。是一种经过组织者精心...
以下是为你整理的化工面试问题及答案,希望能帮到你。 专业综合知识 1. 层流和湍流的区别 层流:质点沿管轴做有规则的平行运动,各质点互不碰撞,互不混合。湍流:质点做不规则的杂乱运动并相互碰撞,产生大大...
【B端产品经理面试问题及答案】是针对求职者在应聘B端产品经理角色时可能会遇到的常见面试问题及其解答策略的汇总。B端产品经理是负责为企业客户提供软件产品和服务的专业人士,通常涉及SaaS(Software as a Service...
C#高级编程面试考题