华为机试平台
听说华为有个机试平台,昨天用公共账号上去看了一下。发现上面的练习题比网上流传的测试题要明显难一些,很多高级和挑战级的题目还是涉及了很多方面的技术的,不熟悉的话,做题还真的要学一学。
做了两道相对简单的题,熟悉一下这个平台的使用。
题1
- 在Stairs函数中实现该功能:
- 一个楼梯有N阶,从下往上走,一步可以走一阶,也可以走两阶,有多少种走法?
- (0
- 例如3阶楼梯有3种走法:
- 1、1、1
- 1、2
- 2、1
- 输入样例:
- 3
- 返回值样例:
- 3
这个题其实就类似一个斐波那契数列,在到达终点n之前,最后的一步,如果是上了一个台阶,这种情况的可能方案与终点是(n-1)的情况一样。如果是上了两个台阶,就与终点是(n-2)的情况一样。这样一来,n个台阶的方案就等于(n-1)个台阶和(n-2)个台阶方案的总和。
只是与斐波那契数列开头的几个数字不同,后面的算法是一样的。我们找到前几个就好了。可以用循环实现,当然也可以用递归。
public