`

面试问题 有50级台阶,你每次可以走一阶或两阶,有多少种走法

    博客分类:
  • Java
阅读更多
有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);
	}
}

分享到:
评论

相关推荐

    n步走楼梯.rar

    // 第二个台阶有两种走法:一步或两步 for (int i = 3; i ; ++i) { dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]; } return dp[N]; } ``` 这个函数首先初始化一个大小为N+1的动态规划数组,并设置基础情况。...

    几道百度面试题1

    这是一个经典的斐波那契序列问题,每次可以向上走一阶或两阶,问到达第N阶有多少种不同的方式。可以使用动态规划来解决,设dp[i]表示到达第i阶的方案数,那么dp[i] = dp[i-1] + dp[i-2],因为到达第i阶要么从第i-1阶...

    精选29道android高阶面试题

    android高阶面试题,面试用的,平常积累11111111111111

    50个面试问题及常见回答

    18. **你有什么问题要问我们**:准备几个关于公司、团队或角色的问题,显示你对面试的投入和热情。 19. **如何处理团队冲突**:提供解决冲突的策略,强调沟通和协作的重要性。 20. **你的薪资要求**:基于市场调查...

    golang 50k 高阶面试题

    标题 "golang 50k 高阶面试题" 指出了文章内容将围绕Go语言高级面试题的范围,尤其是针对有一定难度和深度的问题。描述 "go大厂都面试什么" 表明文章的内容会贴近那些一线科技公司(通常被称作大厂)在招聘Go语言...

    BAT常见的面试问题及其解答

    题目描述:青蛙一次可以跳1级或2级台阶,求解跳上n级台阶有多少种跳法。 解答:这是经典的斐波那契数列问题。斐波那契数列的定义是F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2) (n&gt;=2)。可以使用递归、动态规划或迭代方法...

    编程之法:面试和算法心得 清晰完整版

    此外,《编程之法:面试和算法心得》每一章都有“举一反三”和“习题”,以便读者及时运用所学的方法解决相似的问题,且在附录中收录了语言、链表、概率等其他题型。书中的每一道题都是面试的高频题目,反复出现在近...

    100个常见面试问题和答案

    如果你一下子不能确定面试者到底需要什么样的内容,你可以这样说:“有没有什么您特别感兴趣的范围?” 点评:企业以此来判断是否应该聘用你。通过你的谈论,可以看出你想的是如何为公司效力还是那些会影响工作的...

    Java高级面试题和常见面试及答案汇总.rar

    Java作为一门广泛使用的编程语言,其面试题涵盖了基础到高级的各个方面。对于Java开发者来说,了解和掌握这些知识点是提升职业能力的...通过深入学习并理解这些内容,将有助于你在Java面试中表现出色,提升成功几率。

    台阶问题(洛谷-P1192).rar

    想象一个有N级台阶的楼梯,每次你可以跳1级、2级或3级。问题要求计算出从地面到达最顶端有多少种不同的跳法。这个问题的核心在于找到一个递推关系或者动态规划的解决方案。 在编程中,动态规划是一种有效的方法来...

    java高级软件工程师面试题大全及答案 含一些公司面试题

    java高级软件工程师面试题大全及答,一些公司的面试题,对于正在找工作应对面试的朋友或许有点帮助。java高级软件工程师面试题大全及答,一些公司的面试题,对于正在找工作应对面试的朋友或许有点帮助

    面试宝典!高级软件测试面试题大放送

    高级软件测试面试题大放送 本文总结了高级软件测试面试题,涵盖了软件测试的多个方面,包括数据类型、哈希算法、哈希冲突、内存管理和垃圾回收机制、拷贝机制、协程机制等。 一、列表和元组的区别 列表是动态的,...

    面试工具箱之行为面试法:行为面试经典题库.docx

    【行为面试法】是一种广泛应用在招聘过程中的面试技巧,它主要通过询问候选人在过去的工作经历中具体的行为和决策,来评估其潜在的能力、性格特点和职业素养。以下将详细解析文档中提到的几个关键知识点: 1. **...

    25零跑汽车面试问题总结机械面试经验分享最常见面试问题+答案

    从你所在项目中挑一个你就有成就感的介绍 你的缺点和优点 有几个offer 你对加班怎么看 你有什么想问的 (没问任何技术上的问题 ) ---- 他跟我说好像周六也得打卡 他那边音质不太好 听不太清我也没追问 随缘了 零跑...

    15个经典面试问题

    15个经典面试问题,可以让你面试无忧,轻松商场,面试是通过书面、面谈或线上交流(视频、电话)的形式来考察一个人的工作能力与综合素质,通过面试可以初步判断应聘者是否可以融入自己的团队。是一种经过组织者精心...

    化工面试问题及答案.pdf

    以下是为你整理的化工面试问题及答案,希望能帮到你。 专业综合知识 1. 层流和湍流的区别 层流:质点沿管轴做有规则的平行运动,各质点互不碰撞,互不混合。湍流:质点做不规则的杂乱运动并相互碰撞,产生大大...

    B端产品经理必问面试问题及答案(一).pdf

    【B端产品经理面试问题及答案】是针对求职者在应聘B端产品经理角色时可能会遇到的常见面试问题及其解答策略的汇总。B端产品经理是负责为企业客户提供软件产品和服务的专业人士,通常涉及SaaS(Software as a Service...

    C#高级编程面试考题完整版

    C#高级编程面试考题

Global site tag (gtag.js) - Google Analytics