题解 | #搬水果#

搬水果

https://www.nowcoder.com/practice/e4c775b0f3ee42a4bb72c26d2e1eef8a

#include <stdio.h>
#include <stdlib.h>
/*根据下面注释的失败思路进行改进
上面思路失败的点在于把每次合并后的最小堆考虑成了各个种类里面的最小堆
只需要想办法维护一个每次都能输出最小两个堆的存储结构即可
对于C++来说可以采用优先队列
对于C来说,其实就是建树的过程,思路类似于哈夫曼树,最终题目要求的就是WPL
简化一下用数组排序+递归的思想去求
*/
int cmp(const void* a,const void* b)
{
    int c = *(int*) a;
    int d = *(int*) b;
    return c-d; //升序排列
}

int getHuffmanWpl(int arr[],int start,int len)
{
    int sum,temp,i;
    if(len == start)
    {
        return 0; //递归边界
    }
    if(len == start + 1)
    {
        return arr[0]; //只有一个元素的时候
    }
    if(len == start + 2)
    {
        return arr[start] + arr[start+1];
    }
    sum = arr[start] + arr[start+1];
    arr[start+1] = sum; //找个地方存储sum,之后从sum这里截断数组
    for(i=start+1;i<len-1;i++)
    {
        //冒泡
        if(arr[i+1] < sum)
        {
            arr[i] = arr[i+1];
        }
        else
        {
            break;
        }
    }
    arr[i] = sum;
    return sum+getHuffmanWpl(arr, start+1, len);//递归截断数组
}

int getWpl(int arr[],int n)
{
    qsort(arr,n, sizeof(int), cmp);
    //或者用冒泡
    return getHuffmanWpl(arr, 0, n);
}


int main()
{
    int count;
    while (scanf("%d",&count) != EOF)
    {
        if(count == 0)
        {
            break;
        }
        int fruits[count];
        int i,Wpl;
        for(i=0;i<count;i++)
        {
            scanf("%d",&fruits[i]);
        }
        Wpl = getWpl(fruits, count);
        printf("%d\n",Wpl);
    }    
}

全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
家人们,我现在真的好纠结。我是26届的,目前还没有实习过。我现在的情况是,想参加秋招,但是感觉自己的简历特别空,没有实习经历会不会秋招直接凉凉啊?可我又听说现在很多公司对26届实习生也不太感冒,说什么不确定性大。而且我最近在准备考公,时间上也有点冲突。要是把时间花在实习上,备考时间就少了。但要是不实习,又怕以后就业有问题😫有没有懂行的友友帮我分析分析:26届现在不实习,秋招找工作真的会很难吗?考公和实习该怎么平衡啊?如果现在不实习,考完公再去找实习还来得及吗?真的太焦虑了,希望大家能给我点建议🙏
小破站_程序员YT:我可能和大家的观点不一样。人的精力是有限的,不能既要还要。你又想实习又想考公最后又要秋招上岸,我觉得哪有那么多的选择。你如果想考上岸,那就全力以赴。如果想秋招上岸,就继续投实习,投没了,就继续准备秋招,秋招不行继续春招。别到最后,考公没上岸,觉得是花了时间浪费在找实习上了, 秋招没上岸,觉得是浪费时间准备考公去了。我是认为很难说可以去平衡 不喜勿喷,可以叫我删除
实习与准备秋招该如何平衡
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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