题解 | #【模板】堆#

【模板】堆

https://www.nowcoder.com/practice/13f61c8c92404f5ea5d6fa4c692869fb

const int maxn=1e5+100;
int a[maxn],h[maxn],mysize;
void down(int u)
{
    int t=u;
    if(u*2<=mysize && a[u*2]<a[t]) t=2*u;
    if(2*u+1<=mysize && a[2*u+1]<a[t]) t=2*u+1;
    if(u!=t)
    {
        swap(a[u],a[t]);
        down(t);
    }

}
int main()
{
    int n,m,i,j;
    cin>>n>>m;
    mysize=n;
    for(i=1;i<=n;i++){
        cin>>a[i];
    }
    for(i=n/2;i;i--){
        down(i);
    }
    while(m--)
    {
        cout<<a[1]<<" ";
        a[1]=a[mysize--];
        down(1);
    }
    return 0;
}

全部评论

相关推荐

如题,这操作。。。。
真烦好烦真烦:既想享受国家的招聘应届生福利,又不想培养新人,我只能说这种企业的ld太过分了
投递美的集团等公司6个岗位 >
点赞 评论 收藏
分享
03-07 17:34
吉林大学 Java
野猪不是猪🐗:说说我的看法: 1. 分布式微服务不是必学的,先把mysql redis spring生态 juc jvm os 计网这些学的差不多,就能应对大部分常规八股。项目直接用单体项目也是可以的 2. 你的学历有优势,后续把外卖做个拓展换皮(或者去吃透一个不那么烂大街的项目),就能够收获不少面试。但重心建议放在八股算法上,项目不必追求高级或独特,但必须吃透,并且要提前准备一些话术,比如技术选型,为什么考虑用a而不是用b 3. 五六月份大厂暑期的难度会下降(因为大佬都选好offer开始释放了,很多甚至都入职了),所以心态要稳住,不要陷入内耗 加油
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务