网易第1,3题代码 顺便求个第二题抽牌的ac解

网易第一题ac 以及第三题90% 代码

第一题 给定一个数组,是否存在一个x,使得数组中某些元素加上x,某些元素减去x之后,数组中的所有元素都相等 ac

# -*- coding=utf-8 -*-
def check_equal(seq):
    length = len(seq)
    if length <= 2:
        return 'YES'

    if length != 3:
        return 'NO'

    seq.sort()
    a, b, c = seq
    if b - a == c - b:
        return 'YES'
    else:
        return 'NO'


if __name__ == "__main__":
    seq_nums = int(input())
    for i in range(seq_nums):
        length = int(input())
        seq = list(map(int, input().split()))
        seq = list(set(seq))
        print(check_equal(seq))

第三题 求给定所有数对中,能够整除每个数对中最少一个元素的最大质数x 通过了90%

# -*- coding=utf-8 -*-
from math import sqrt


def get_max_gcd(seq):
    # 得到质因数上线
    min_value = min(seq, key=lambda x: max(x[0], x[1]))
    min_value = min(min_value)
    zhi_list = get_zhi(min_value)
    for zhi in zhi_list:
        flag = True
        for item in seq:
            if not check_equal(item, zhi):
                flag = False
                break
        if flag:
            return zhi

    return -1


def check_equal(item, zhi):
    for _ in item:
        if _ % zhi == 0:
            return True
    return False


def get_zhi(value):
    sqrt_value = int(sqrt(value)) + 1
    res = [2]
    i = 3
    while i <= value:
        flag = True
        j = 0
        while j < len(res) and res[j] <= sqrt_value:
            if i % res[j] == 0:
                flag = False
                break
            else:
                j += 1
        if flag:
            res.append(i)
        i += 1
    return res[::-1]


if __name__ == "__main__":
    n = int(input())
    seq = []
    for i in range(n):
        a, b = map(int, input().split())
        seq.append((a, b))
    print(get_max_gcd(seq))
#网易#
全部评论
第二题每次取最多的直到手牌取满,第三题不知道为什么一直80%……
点赞 回复 分享
发布于 2018-09-28 17:29

相关推荐

牛客92804383...:在他心里你已经是他的员工了
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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