A和C题,小白解法,不知道有哪些问题,望大佬赐教

A题感觉没啥难得,但是为啥提交就全部没通过,就迷惑

while True:
    try:
        n = int(input())
        nums = list(map(int, input().split()))
        targetnums = list(map(int, input().split()))
    except:
        break

    # 计算由nums变换成targetnums所需的步数,每一步都将一个数字左移若干位
    step = 0
    j = 0
    for i in range(len(targetnums)):
        if targetnums[i] == nums[j]:
            j+=1
            continue
        else:
            step += 1
    print(step)

C题本来还想什么动态规划,后干脆回溯吧,感觉也没啥问题,但又是啥也没通过,起码能过个三分之一吧,为啥为啥,大佬求赐教!

import collections

while True:
    try:
        n = int(input())
        target = list(map(int, input().split()))
    except:
        break
    plan = []
    for i in range(n):
        plan.append(list(map(int, input().split())))


    plan = [[-2, 0], [3, 0], [4, 0], [5, 0], [0, 10], [0, -10], [0, 10]]
    target = [5, 10]

def com(candidates, target):

    path = []
    res = []
    candidates.sort()
    print(candidates)

    def backtracking(andidates, target, sum_, start_index):
        if sum_ == target:
            res.append(path[:])
            return

        # 单层递归逻辑
        for i in range(start_index, len(candidates)):

            sum_[0] += candidates[i][0]
            sum_[1] += candidates[i][1]
            path.append(candidates[i])
            backtracking(candidates, target, sum_, i+1)
            path.pop()             
            sum_[0] -= candidates[i][0]
            sum_[1] -= candidates[i][1]      

    backtracking(candidates, target, [0,0], 0)
    return res

res = com(plan, target)
# print(res)
cnt = []
for i in range(len(res)):
    cnt.append(len(res[i]))
# print(cnt)
ans = collections.Counter(cnt)
# print(ans)
for i in range(1, n+1):
    if i in ans:
        print(ans[i])
    else:
        print(0)

全部评论
第一题有需要标记一下移动过的元素,比如下面的数据,你的会出错 1 2 3 4 5 6 7 8 9 5 4 3 2 1 6 7 8 9 第三题分成两个部分,枚举所有的可能,N最大40,分成两部分最大20,每一部分共有 2^20 种可能。然后类似 two sum,枚举前一半的所有可能值,计算后一半需要的值,统计个数。
1 回复 分享
发布于 2022-04-28 23:00

相关推荐

人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务