京东 数据分析实习生笔试编程第二题 跳格子的方法

笔试估计又凉了,但还是想知道编程第二道跳格子问题该如何解决,希望能有大佬帮看一下以下代码思路是否正确,不胜感激!
n为格子总数,h0为手里的数
ai是一个数组,每个元素表示当前格子可往后跳几个格子
在第i个格子上,有两种往后跳格子的方式,横跨h0或者a[i]个格子。如果按横跨h0来跳,h0不变;如果这一步按a[i]来跳的话,h0更新为a[i]
求从第一个格子跳到最后一个格子共有几种方法
def dfs(visited,current,h0):
    if current<=n-1:
        if current==n-1: 
            if visited not in final_visited:
                final_visited.append(visited[:])
        else:            
            for i in [h0,ai[current]]:                                             
                xx=current+i # follow h0
                h0=i
                visited.append(xx)
                dfs(visited,xx,h0)
                visited.pop()
n,h0=[int(s) for s in input().split()]
ai=[int(s) for s in input().split()]
visited=[0]
current=0
current=0
final_visited=[]
dfs(visited,current,h0)
print(len(final_visited)) 
#京东数据分析实习笔试##京东##笔试题目#
全部评论
你好,h是保持不变的吗?
1 回复 分享
发布于 2020-04-19 01:03
可以问一下选择题考的是哪方面的知识吗?
1 回复 分享
发布于 2020-09-11 10:51
您好,请问数据分析岗一共考多少道题啊
点赞 回复 分享
发布于 2020-08-26 23:43

相关推荐

牛客154160166号:9月底还给我发短信,好奇怪,我24届的
点赞 评论 收藏
分享
2 32 评论
分享
牛客网
牛客企业服务