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 回复 分享
发布于 2022-09-22 00:48 河南
感觉可以二分?
1 回复 分享
发布于 2022-09-21 22:50 广东
请问题目是什么?
1 回复 分享
发布于 2022-09-21 21:33 美国
你看错题了吧,咋能limit乘n呢?
1 回复 分享
发布于 2022-09-21 21:16 北京
第一题不是最基础的二分吗
1 回复 分享
发布于 2022-09-21 21:14 北京
-1就是10
1 回复 分享
发布于 2022-09-21 21:10 广东
大佬,可以讲下思路吗,感觉可以理解,但当时就想不到这种方法,暴力又不能全过
点赞 回复 分享
发布于 2022-09-23 15:16 北京
Int溢出了,要用long
点赞 回复 分享
发布于 2022-09-22 15:40 广东
一开始用js只过10,不知道咋回事,代码检查了半天也没发现什么问题,就是简单的二分,搞了好久,后面试了一下c++就过了,原来是tm多个空格,真的太恶心了
点赞 回复 分享
发布于 2022-09-21 21:46 天津
本来用string[] s = sc.nextLine().split(" ") 读取一行数据,然后赋给record[i],后来改成record[i] = sc.nextLong()就过了
点赞 回复 分享
发布于 2022-09-21 21:46 北京
第一道题用了二分法,45%。给我整蒙了
点赞 回复 分享
发布于 2022-09-21 21:16 北京
直接暴击过90%
点赞 回复 分享
发布于 2022-09-21 21:14 山东
华为能直接输出骗分吗
点赞 回复 分享
发布于 2022-09-21 21:12 北京
我java一开始也一直不过卡10%。 后来我c++暴力才过
点赞 回复 分享
发布于 2022-09-21 21:10 北京

相关推荐

下北澤大天使:你是我见过最美的牛客女孩😍
点赞 评论 收藏
分享
06-23 23:49
中南大学 Java
成绩一坨屎,英语6级没过,没读研,没考教资,没考计算机二级,没考公,没谈过恋爱,你们说我的这个大学生涯是不是混的有点失败啊?哎老中一生的容错还是太低了下辈子一定注意混好大学生涯不留遗憾
K1einMoretti:1.不保研 成绩没太大用 2.6级没过看用人企业要求了,基本上只要4级以上 3. 读不读研看自己选择,现在这环境螚先就业就先就业 4. 你不当老师考啥教资 5. 计算机二级没用(这证纯给国家上供) 6. 订婚***案了解一下?
点赞 评论 收藏
分享
评论
4
19
分享

创作者周榜

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