腾讯笔试第三题求解答

def cal(nums, k):
    nums = [num for num in nums if num > 0]
    nums = sorted(nums)
    pos = 0
    step = 0
    zeros = False
    while pos < len(nums) and k:
        if nums[pos]-step>0:
            print(nums[pos]-step)
            k -= 1
            step += nums[pos]
            pos += 1
        else:
            if nums[pos]-step < 0:
                zeros = False
            pos += 1
    while zeros and k:
        print(0)
        k -= 1
通过20%,不明白哪里错了
#腾讯##笔试题目#
全部评论
#include<iostream> #include<queue> #include<algorithm> #include<functional> using namespace std; int main() {     priority_queue<int, vector<int> , greater<int> > minheap;     int n,k,tmpInput;     cin >> n >>k;     for (int i = 0; i < n; i++)     {         cin >> tmpInput;         minheap.push(tmpInput);     }     int minusNum = 0,tmpMin=0;     for (int i = 0; i < k; i++)     {         tmpMin = 0;         while (!minheap.empty() && tmpMin==0)         {             tmpMin = minheap.top() - minusNum;             minheap.pop();         }         minusNum += tmpMin;         cout << tmpMin << endl;     } }
点赞 回复 分享
发布于 2019-04-07 21:40
点赞 回复 分享
发布于 2019-04-08 20:05
点赞 回复 分享
发布于 2019-04-08 02:45
排序,然后直接输出后一个减前一个?中间判断轮次和是否为0,为0直接结束
点赞 回复 分享
发布于 2019-04-07 21:45
对num取一个set就差不多了吧
点赞 回复 分享
发布于 2019-04-07 21:41
连续几个一样的会出现负数的情况,考虑了吗?
点赞 回复 分享
发布于 2019-04-07 21:39

相关推荐

04-02 10:09
门头沟学院 Java
用微笑面对困难:这里面问题还是很多的,我也不清楚为啥大家会感觉没啥问题。首先就是全栈开发实习9个月的内容都没有java实习生的内容多,1整个技术栈没看出太核心和难点的内容,感觉好像被拉过去打杂了,而且全栈基本上很容易被毙。里面能问的bug是在太多了比如L:继承 BaseMapper 可直接使用内置方法’。请问你的 BaseMapper 是如何扫描实体类注解如果瞬时产生 100 个上传任务,MySQL 的索引设计是否会有瓶颈?你做过分库分表或者索引优化吗?全栈的内容可以针对动态难点去搞,技能特长写在下面吧,你写了这么多技能,项目和实习体现了多少?你可以在项目里多做文章然后把这个放下去,从大致来看实习不算太水,有含金量你也要写上内容针对哨兵里面的节点变化能问出一万个问题,这个很容易就爆了。
提前批简历挂麻了怎么办
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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