当前位置: 首页 > wzjs >正文

开网站做备案需要什么资料友情链接购买

开网站做备案需要什么资料,友情链接购买,wordpress 邮件模板,宠物网站设计案例一、题目解析 这里要注意恰好这个字眼,说明对任意数减小一半是不需要向上取整的,所以我们需要定义double类型的数据。 二、算法解析 我们需要将数组和减小为一半的次数最少,所以根据贪心算法,我们需要取数组中最大的数进行减半操…

一、题目解析

这里要注意恰好这个字眼,说明对任意数减小一半是不需要向上取整的,所以我们需要定义double类型的数据。

二、算法解析

我们需要将数组和减小为一半的次数最少,所以根据贪心算法,我们需要取数组中最大的数进行减半操作 ,但最优解也许不是每次都选择最大数进行减半操作,为什么贪心解就是正确的解呢?这个会在最后证明。

解法:贪心+大根堆

由于每次需要取最大的数进行 减半操作,我们可以使用大根堆来存储数据。

统计数组和的同时将数据插入到大根堆中,top出最大的数对其减半,然后pop掉原来数据,并将减半后的数重新插入回去,计数器++,然后重复这样的行为直到数组和减少到至少一半为止。

这里的大根堆使用 priority_queue容器。

根据上面的解析先自己编写代码,链接:2208. 将数组和减半的最少操作次数 - 力扣(LeetCode)

三、代码示例

class Solution {
public:int halveArray(vector<int>& nums) {priority_queue<double> maxHeap;//大根堆double sum1 = 0.0;//sum1是原本的数组和for(auto e : nums){maxHeap.push(e);//插入元素sum1 += e;}double sum2 = sum1;//sum2是减半后的数组和int count = 0;while((sum1 - sum2) < (sum1/2))//当减小的部分大于或等于sum1的一半时,循环结束{double tmp = maxHeap.top();//获取堆顶元素maxHeap.pop();//删除堆顶元素sum2 -= tmp;sum2 += (tmp/2);maxHeap.push(tmp/2);count++;//计数器}return  count;}
};

 

 四、证明

证明方法:交换论证法

看到最后,如果对您有所帮助还请留下一个免费的赞和收藏,小编感激不尽,期待我们下期再见! 

http://www.dtcms.com/wzjs/288468.html

相关文章:

  • 北京做网站哪家公司好视频seo优化教程
  • 网站怎么做网络推广googleseo服务公司
  • java可以做网站吗百度官方免费下载安装
  • 宁夏免费建个人网站客服系统网页源码2022免费
  • 网站开发工程师证书有用吗百度快照关键词推广
  • 游戏代理怎么赚钱的搜索引擎优化网页
  • 网站索引下降如何解决创建个人网站的流程
  • 最好的扁平化网站怎么看关键词的搜索量
  • 网页升级紧急通知直播优化大师软件下载
  • 没有服务器怎样做网站seo流量增加软件
  • 做百度移动网站整合营销案例举例说明
  • 网站管理助手建站教程浏览器打开网站
  • 网站二维码弹窗今天热搜前十名
  • 淘宝上开做网站的店铺一站式网站建设公司
  • 唯品会一家专门做特卖的网站如何接广告赚钱
  • 东莞网站建设平台百度关键词代做排名
  • 做网站前端有前途么?深圳优化排名公司
  • 教育类网站建设策划书今天新疆新闻头条
  • 在招聘网站做销售技巧微信信息流广告投放
  • 网站建设以及运营方面电商平台开发
  • 上海网站建设类岗位网络营销的四大特点
  • 做营销型网站的企业如何推销自己的产品
  • 免费个人网站模板在线代理浏览网页
  • 赣州宏达网站建设想找搜索引擎优化
  • 网站建设销售销售流程国外免费网站域名服务器查询软件
  • 工程建设有哪些网站优化seo怎么做
  • 东营做网站佛山百度网站快速排名
  • 自己做网站外包网络推广发帖网站
  • 苏州园区做网站公司网站推广的案例
  • 昆明网站建设首选公司惠州seo排名