9.21华为笔试

# 第一道题感觉没错,但就过了10%,不知道哪里错了,求大佬帮我看看
def func():
    N = int(input())
    records = list(map(int, input().split(' ')))
    total = int(input())
    records.sort()
    idx = -1
    remainder = total
    for i in range(N):
        if (N-i)*records[i] <= remainder:
            remainder -= records[i]
        else:
            idx = i
            break
    if idx==-1:
        print(-1)
    else:
        print(int(remainder/(N-idx)))
    
if __name__ == "__main__":
    func()

#华为笔试#
全部评论
10%是因为他的输入中间不止一个空格,得把所有空格都去掉。。
5 回复 分享
发布于 2022-09-21 21:16 河北
python输入要这样,list(map(int, input().strip().split(' ')))。加个strip就行了。前几天测出来的坑
4 回复 分享
发布于 2022-09-22 10:05 北京
我用Python暴力30,后来55,就是过不了
2 回复 分享
发布于 2022-09-21 21:13 湖北
-1就是10
1 回复 分享
发布于 2022-09-21 21:10 广东
第一题不是最基础的二分吗
1 回复 分享
发布于 2022-09-21 21:14 北京
你看错题了吧,咋能limit乘n呢?
1 回复 分享
发布于 2022-09-21 21:16 北京
请问题目是什么?
1 回复 分享
发布于 2022-09-21 21:33 美国
感觉可以二分?
1 回复 分享
发布于 2022-09-21 22:50 广东
求三道题原题
1 回复 分享
发布于 2022-09-22 00:48 河南
我java一开始也一直不过卡10%。 后来我c++暴力才过
点赞 回复 分享
发布于 2022-09-21 21:10 北京
华为能直接输出骗分吗
点赞 回复 分享
发布于 2022-09-21 21:12 北京
直接暴击过90%
点赞 回复 分享
发布于 2022-09-21 21:14 山东
第一道题用了二分法,45%。给我整蒙了
点赞 回复 分享
发布于 2022-09-21 21:16 北京
本来用string[] s = sc.nextLine().split(" ") 读取一行数据,然后赋给record[i],后来改成record[i] = sc.nextLong()就过了
点赞 回复 分享
发布于 2022-09-21 21:46 北京
一开始用js只过10,不知道咋回事,代码检查了半天也没发现什么问题,就是简单的二分,搞了好久,后面试了一下c++就过了,原来是tm多个空格,真的太恶心了
点赞 回复 分享
发布于 2022-09-21 21:46 天津
Int溢出了,要用long
点赞 回复 分享
发布于 2022-09-22 15:40 广东
大佬,可以讲下思路吗,感觉可以理解,但当时就想不到这种方法,暴力又不能全过
点赞 回复 分享
发布于 2022-09-23 15:16 北京

相关推荐

11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
牛客771574427号:恭喜你,华杰
点赞 评论 收藏
分享
评论
4
19
分享
牛客网
牛客企业服务