【2020秋招笔试】360-散步

第一题太简单,不贴了。
但是这种秋招笔试,样例库的样例不多,笔试能过,不代表算法正确,欢迎网友提bug~
题目盗图
在这里插入图片描述

import sys
direc = [-1, 1]
line = sys.stdin.readline().strip()
n, m = list(map(int, line.split()))
num = 0
p, q = [], []

def judge(a):    
    if(a > 0 and a < n + 1):
        return True
    return False

def dfs(cur, id_):
    if(id_ >= m):        
        if(cur <= n and cur > 0):
            q.append(cur)            
        return
    for k in range(2):
        new = cur + p[id_] * direc[k]
        if(judge(new) == True):
            dfs(new, id_ + 1)
            cur = new - p[id_] * direc[k]
    return 
for i in range(m):
    p.append(int(sys.stdin.readline().strip()))
for st in range(1, n+1):
    dfs(st, 0)    
print(len(list(set(q))))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值