当前位置:   article > 正文

记录一次失败的华为面试_华为od面试挂了

华为od面试挂了

前几天华为的面试官找到我,但是签约不是和华为,是和德科的签约,然后我也去百度了,发现其实就是个外包,他们俗称的OD模式,但是奈何工资高啊,想着去试一下,结果第一面上机敲代码就挂了,惭愧,此次记录一下那道题目。

题目

假如你要上一个有n阶梯的楼梯,每次只能走一阶或者两阶,问有多少种上楼梯的方式。 比如当n=2的时候,有1+1,和2两种方式
当n=3的时候,有1+1+1,1+2,2+1,三种方式

当看到这题的时候,想到的是排列组合的方式,当时的思路是有一堆加起来等于n的1和2的元素,要怎么往坑里面填。假设元素的总数是A,于是想到是如果是不区分1和2的筹码的话,那么每次随机从总数A中取出往坑里填,假设元素1的个数有B个,2的个数有C个,根据排列组合的知识知道一共有的组合方式是:
在这里插入图片描述
因此可以把所有满足和是n的元素1和元素2个数进行组合得到答案。

遇到的坑

上面的算法从数学上解释是完全没问题的,但是因为要算出组合的结果,当算A!的结果时,如果输入n稍微大一点就会溢出了,毕竟长整long也就64位,遭不住这么大的结果,所以我的测试用例也没有百分百,惭愧,当时实在是没想到其他解决办法,一开始就想到组合方式。

解决

其实只要观察n等于1,2,3,4等较小输入的时候我们可以穷举出它的结果依次为:1,2,3,5。发现每个数都是它前两个数的相加,因此只要用递归来做就很简单了,也不会有算的中间值超大的情况。

后续

大概两周后,又让我重新考了一次,这次两道题,一道过了,一道百分之八十。就算是机考过了,可是后来又栽在了性格测试上,哈哈,这次栽了就要十八个月内都不能面华为

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/505580
推荐阅读
相关标签
  

闽ICP备14008679号