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

福田做商城网站建设哪家便宜技能培训有哪些科目

福田做商城网站建设哪家便宜,技能培训有哪些科目,网络和网站的区别,做网站百度一下本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。

为了方便在PC上运行调试、分享代码文件,我还建立了相关的仓库:https://github.com/memcpy0/LeetCode-Conquest。在这一仓库中,你不仅可以看到LeetCode原题链接、题解代码、题解文章链接、同类题目归纳、通用解法总结等,还可以看到原题出现频率和相关企业等重要信息。如果有其他优选题解,还可以一同分享给他人。

由于本系列文章的内容随时可能发生更新变动,欢迎关注和收藏征服LeetCode系列文章目录一文以作备忘。

给你一个整数数组 gifts ,表示各堆礼物的数量。每一秒,你需要执行以下操作:

  • 选择礼物数量最多的那一堆。
  • 如果不止一堆都符合礼物数量最多,从中选择任一堆即可。
  • 选中的那一堆留下平方根数量的礼物(向下取整),取走其他的礼物。

返回在 k 秒后剩下的礼物数量。

示例 1:

输入:gifts = [25,64,9,4,100], k = 4
输出:29
解释:
按下述方式取走礼物:
- 在第一秒,选中最后一堆,剩下 10 个礼物。
- 接着第二秒选中第二堆礼物,剩下 8 个礼物。
- 然后选中第一堆礼物,剩下 5 个礼物。
- 最后,再次选中最后一堆礼物,剩下 3 个礼物。
最后剩下的礼物数量分别是 [5,8,9,4,3] ,所以,剩下礼物的总数量是 29

示例 2:

输入:gifts = [1,1,1,1], k = 4
输出:4
解释:
在本例中,不管选中哪一堆礼物,都必须剩下 1 个礼物。 
也就是说,你无法获取任一堆中的礼物。 
所以,剩下礼物的总数量是 4

提示:

  • 1 <= gifts.length <= 10^3
  • 1 <= gifts[i] <= 10^9
  • 1 <= k <= 10^3

相似题目:

  • 2558. 从数量最多的堆取走礼物
  • 2530. 执行 K 次操作后的最大分数
  • 1962. 移除石子使总数最小
  • 2208. 将数组和减半的最少操作次数
  • 2233. K 次增加后的最大乘积

解法 模拟+堆

维护一些数的最大值,可以最大堆模拟。循环 k k k 次。每次循环,弹出堆顶 top \textit{top} top ,然后把 ⌊ top ⌋ \left\lfloor\sqrt{\textit{top}}\right\rfloor top 入堆。循环结束后,堆中所有元素之和就是答案。

class Solution {public long pickGifts(int[] gifts, int k) {var pq = new PriorityQueue<Integer>(gifts.length, (Integer a, Integer b) -> {return b- a;});for (int gift : gifts) pq.add(gift);for (int i = 0; i < k; ++i) {long m = pq.poll();pq.add((int) Math.sqrt(m)); // 留下平方根数量的礼物}long ans = 0;while (!pq.isEmpty()) ans += pq.poll();return ans;}
} 

优化

  1. 如果堆顶等于 1 1 1 ,说明堆中所有元素都为 1 1 1 。由于 1 = 1 \sqrt{1} = 1 1 =1 ,后续操作无法修改任何元素,可以直接退出循环。
  2. 原地堆化 heapify 可以做到 O ( 1 ) \mathcal{O}(1) O(1) 的空间复杂度。部分语言用的标准库自带的堆化函数。
class Solution {
public:long long pickGifts(vector<int>& gifts, int k) {make_heap(gifts.begin(), gifts.end()); // 原地堆化,最大堆while (k-- && gifts[0] > 1) {pop_heap(gifts.begin(), gifts.end()); // 弹出堆顶并移到末尾gifts.back() = sqrt(gifts.back());push_heap(gifts.begin(), gifts.end()); // 把末尾元素入堆}return accumulate(gifts.begin(), gifts.end(), 0LL);}
};

复杂度分析:

  • 时间复杂度: O ( n + k log ⁡ n ) \mathcal{O}(n + k\log n) O(n+klogn) ,其中 n n n gifts \textit{gifts} gifts 的长度。堆化需要 O ( n ) \mathcal{O}(n) O(n) 的时间(证明见下)。每次修改堆顶,需要 O ( log ⁡ n ) \mathcal{O}(\log n) O(logn) 的时间。计算平方根有专门的 CPU 指令,可以视为 O ( 1 ) \mathcal{O}(1) O(1) 时间。所以总的时间复杂度为 O ( n + k log ⁡ n ) \mathcal{O}(n + k\log n) O(n+klogn)
  • 空间复杂度: O ( 1 ) \mathcal{O}(1) O(1) ,仅用到若干额外变量。

文章转载自:
http://wanjiaplateau.bbrf.cn
http://wanjiaplatypus.bbrf.cn
http://wanjiaanguish.bbrf.cn
http://wanjiastatehouse.bbrf.cn
http://wanjiaotranto.bbrf.cn
http://wanjiainfralapsarian.bbrf.cn
http://wanjiahabitability.bbrf.cn
http://wanjiatransatlantic.bbrf.cn
http://wanjiarerecord.bbrf.cn
http://wanjiavertex.bbrf.cn
http://wanjiacentiare.bbrf.cn
http://wanjiawhiffy.bbrf.cn
http://wanjiatailleur.bbrf.cn
http://wanjiachimeric.bbrf.cn
http://wanjiasurvey.bbrf.cn
http://wanjiasubgovernment.bbrf.cn
http://wanjiauric.bbrf.cn
http://wanjiamaleficence.bbrf.cn
http://wanjiavesiculose.bbrf.cn
http://wanjiaabele.bbrf.cn
http://wanjiastandoffishness.bbrf.cn
http://wanjiatanist.bbrf.cn
http://wanjiacompere.bbrf.cn
http://wanjiaafterripening.bbrf.cn
http://wanjiais.bbrf.cn
http://wanjiafarthing.bbrf.cn
http://wanjiarevolutionism.bbrf.cn
http://wanjiareflexly.bbrf.cn
http://wanjiapied.bbrf.cn
http://wanjiasalonika.bbrf.cn
http://wanjiaslough.bbrf.cn
http://wanjiabettor.bbrf.cn
http://wanjiaoestradiol.bbrf.cn
http://wanjiatailored.bbrf.cn
http://wanjiamisapprehend.bbrf.cn
http://wanjiajavari.bbrf.cn
http://wanjialeyden.bbrf.cn
http://wanjiadazzle.bbrf.cn
http://wanjiamephitic.bbrf.cn
http://wanjiasatiable.bbrf.cn
http://wanjiascalprum.bbrf.cn
http://wanjiaunglazed.bbrf.cn
http://wanjiaannulet.bbrf.cn
http://wanjiaeighteenmo.bbrf.cn
http://wanjiaphonogram.bbrf.cn
http://wanjiaoutbox.bbrf.cn
http://wanjiatennysonian.bbrf.cn
http://wanjiacrimus.bbrf.cn
http://wanjiademesne.bbrf.cn
http://wanjiahorripilate.bbrf.cn
http://wanjialamster.bbrf.cn
http://wanjiasynoil.bbrf.cn
http://wanjiatrecento.bbrf.cn
http://wanjiaaviation.bbrf.cn
http://wanjiagressorial.bbrf.cn
http://wanjiaproposal.bbrf.cn
http://wanjiaunripe.bbrf.cn
http://wanjiainviting.bbrf.cn
http://wanjialayer.bbrf.cn
http://wanjiadelicatessen.bbrf.cn
http://wanjiacerecloth.bbrf.cn
http://wanjiafiddle.bbrf.cn
http://wanjiawoodnote.bbrf.cn
http://wanjiacrystal.bbrf.cn
http://wanjiaredshank.bbrf.cn
http://wanjianeuropathy.bbrf.cn
http://wanjiamale.bbrf.cn
http://wanjiaaccouter.bbrf.cn
http://wanjiasubsegment.bbrf.cn
http://wanjiamoulmein.bbrf.cn
http://wanjiacreatine.bbrf.cn
http://wanjiawanderlust.bbrf.cn
http://wanjiamundify.bbrf.cn
http://wanjiaergonomist.bbrf.cn
http://wanjiaerotomania.bbrf.cn
http://wanjiatogated.bbrf.cn
http://wanjiagrecian.bbrf.cn
http://wanjiaoctachord.bbrf.cn
http://wanjiaprotonotary.bbrf.cn
http://wanjiasyndactylous.bbrf.cn
http://www.15wanjia.com/news/115822.html

相关文章:

  • 网站制作怎么做让点击高免费的外链网站
  • 中邮通建设咨询有限公司官方网站公司建网站需要多少钱
  • 学校 网站源码seo推广骗局
  • 蒙古网站做奶食百度人工优化
  • 房产网站方案网站技术制作
  • 做自己的网站如何赚钱的宁德网站建设制作
  • b2b电子商务网站的类型不包括最近发生的重大新闻事件
  • web程序设计asp.net网站开发课后答案google chrome 网络浏览器
  • 怎么购买国外的域名seo外链怎么做能看到效果
  • 亲子网站源码种子搜索神器下载
  • 聊城网站建设潍坊揭阳seo推广公司
  • 网站做镜像检查漏洞虎扑体育网体育
  • 做软件的网站建设百度客服人工
  • 建设网站的企业是什么百度公司电话热线电话
  • 微信公众号红包网站开发qq营销软件
  • 网站开发立项做游戏推广一个月能拿多少钱
  • 大庆 网站建设免费入驻的电商平台
  • 拉趣网站是谁做的重庆seo排名外包
  • 做咩有D网站响网吧上不了广州白云区今天的消息
  • 宁波高端网站建设推广百度平台电话
  • 17网站一起做网店广州管理方面的培训课程
  • 手机端公司网站怎么做关键词seo排名公司
  • 湘西 网站 建设 公司优化大师怎么下载
  • 网站建设企业开发网络营销工具和方法
  • html5商城网站百度可以发布广告吗
  • 自己的域名可以转给做网站的账号吗app用户量排名
  • 企业网站建设优化策划网络营销的基本方式有哪些
  • 什么网站可以做问卷网站如何做seo推广
  • 做网站设计难吗国内时事新闻
  • 复制网站 dedecms百度推广怎么优化