腾讯笔试完美对

腾讯笔试第四题求完美对
有没有大佬告知一下我这为啥a不了orz
我想的是diff互为相反数就是完美对,然后用字典存,再从字典里找,例子都过了,就是case为0
import sys
lines = sys.stdin.readlines()
n, k = list(map(int, lines[0].split()))
diff_dic = {}
res = 0
for i in range(1, n+1):
    value = list(map(int, lines[i].split()))
    diff = [value[j]-value[j-1] for j in range(1, k)]
    diff = tuple(diff)
    if diff not in diff_dic:
        diff_dic[diff] = 1
    else:
        diff_dic[diff] += 1
for i in diff_dic:
    if diff_dic[i] == 0:
        continue
    negtive = [-j for j in i]
    negtive = tuple(negtive)
    if negtive in diff_dic:
        res += diff_dic[i] * diff_dic[negtive]
        diff_dic[negtive] = 0
print(res)


#腾讯笔试##笔试题目##腾讯#
全部评论
&我也是这么解的,也是0
点赞 回复
分享
发布于 2020-04-26 23:07
没必要再去过一遍字典了 边计算边找就行了 diff算的时候就把diff的相反数也算出来了 然后去字典里搜 搜到了 结果加上字典值 最后把diff加到字典里面 就a了
点赞 回复
分享
发布于 2020-04-26 23:48
联想
校招火热招聘中
官网直投
破案了,睡了一觉想明白了2333有些对需要考虑自身,2楼说得对,应该在构建字典的过程中加和,不然会有冲突
点赞 回复
分享
发布于 2020-04-27 08:09
可能就是因为存在一样的数字的情况,这个时候你的代码无法解决,但是我觉得一个都过不了确实有点冤。https://blog.csdn.net/m0_38065572/article/details/105783418这里有我当时a的代码
点赞 回复
分享
发布于 2020-04-27 22:21

相关推荐

点赞 评论 收藏
转发
点赞 3 评论
分享
牛客网
牛客企业服务