Python急转弯-4-面试篇

2019-07-18 15:51:53 浏览数 (1)

大厂的 offer 要好几回的面试和笔试,问完了原理,还要有项目经验。

① 变态青蛙跳

题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

有n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级

跳1级,剩下n-1级,则剩下跳法是f(n-1)

跳2级,剩下n-2级,则剩下跳法是f(n-2)

所以f(n)=f(n-1) f(n-2) ... f(1)

因为f(n-1)=f(n-2) f(n-3) ... f(1)

所以f(n)=2*f(n-1)

然后求解这个无穷级数的和,正确答案应该是:每次至少跳一个,至多跳n个,一共有f(n)=2n-1种跳法

代码语言:javascript复制
class Solution:
    def jump_floor(self, number):
        # write code here
        return 2**(number-1)

② 求1 2 3 ... n

利用python的特性

代码语言:javascript复制
class Solution:
    def sum_solution(self, n):
        # write code here
        return sum(list(range(1, n   1)))

0 人点赞