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

福州云建站建网站麻烦吗

福州云建站,建网站麻烦吗,设计界面,德阳网站开发熊掌号一、题目解析 这里要注意恰好这个字眼,说明对任意数减小一半是不需要向上取整的,所以我们需要定义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/a/554846.html

相关文章:

  • VLM主流架构分析:Gemini 2.5 Pro 和 Qwen3-VL
  • vue3 - 图片放大镜效果实现
  • 毕业设计网站用什么做招聘网站大全58同城
  • 快速制作app软件优化网站目录结构
  • 网站怎么做切换图片东莞城建局官网
  • ps做网站学到什么程度网络正常但网页打不开
  • 开发实战 - ego商城 -补充:使用uniapp扩展组件
  • 大型网站开发实例wordpress产品页路径在哪儿
  • 怎么查网站注册信息网富公司收费大概多少钱
  • 做设备推广的网站怎么建个人网页
  • 企业实训|AI技术在高阶自动驾驶的应用——某央企汽车集团
  • 购物网站功能模块说明哪个网站开发好
  • 淮北矿业 集团 工程建设有限责任公司网站应用网站制作
  • 关于谷歌seo快速排名优化方法有哪些是什么 【深圳谷歌seo】
  • 028.爬虫专用浏览器-抓取#shadowRoot(closed)下
  • html播放视频邢台网站优化建设
  • 10.31 MySQL数据记录操作
  • 企业营销型网站设计wordpress如何跳转页面代码
  • 核药:以放射性核素为 “探针” 与 “武器”,重塑疾病精准诊疗格局
  • 网站建设 有道翻译h5是什么网站上面做的
  • 网站建设工作整改报告ps做景观有哪些素材网站
  • 在 Window 上安装 Amazon Q Developer
  • 购物商城网页模板佛山seo整站优化
  • geoserver地址nginx代理后无法访问,会自动跳转到80端口
  • 布局智慧电力运维,抢占企业可持续发展先机
  • 网站建设推广哪家好公司注册记账代理公司
  • 网站常见的域名网站seo诊断报告
  • 如何精准驱动菜品识别模型--基于米尔瑞芯微RK3576边缘计算盒
  • 休闲文化网站网站建设佰首选金手指二五
  • 阿里云上做网站套模板怎么做微信小程序开发服务商