首页 > 京东 数据分析实习生笔试编程第二题 跳格子的方法
头像
局中人你是谁
编辑于 2020-04-19 09:08
+ 关注

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

笔试估计又凉了,但还是想知道编程第二道跳格子问题该如何解决,希望能有大佬帮看一下以下代码思路是否正确,不胜感激!
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)) 

全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐