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

网站 pngdw软件做网站

网站 png,dw软件做网站,个人网站 jsp 域名空间,电商网站创办过程文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 有一棵特殊的苹果树,一连 n n n 天,每天都可以长出若干个苹果。在第 i i i 天,树上会长出 a p p l e s [ i ] apples[i] apples[i] 个苹果&a…

文章目录

  • 题目
  • 思路
  • 代码
  • 复杂度分析
    • 时间复杂度
    • 空间复杂度
  • 结果
  • 总结

题目

题目链接🔗

有一棵特殊的苹果树,一连 n n n 天,每天都可以长出若干个苹果。在第 i i i 天,树上会长出 a p p l e s [ i ] apples[i] apples[i] 个苹果,这些苹果将会在 d a y s [ i ] days[i] days[i] 天后(也就是说,第 i + d a y s [ i ] i + days[i] i+days[i] 天时)腐烂,变得无法食用。也可能有那么几天,树上不会长出新的苹果,此时用 a p p l e s [ i ] = = 0 apples[i] == 0 apples[i]==0 d a y s [ i ] = = 0 days[i] == 0 days[i]==0 表示。

你打算每天 最多 吃一个苹果来保证营养均衡。注意,你可以在这 n n n 天之后继续吃苹果。

给你两个长度为 n n n 的整数数组 d a y s days days a p p l e s apples apples ,返回你可以吃掉的苹果的最大数目。

示例 1:

输入:apples = [1,2,3,5,2], days = [3,2,1,4,2]

输出:7

示例 2:

输入:apples = [3,0,0,5,0], days = [3,0,0,4,0]

输出:5

提示:

  1. 1 ≤ a p p l e s . l e n g t h ≤ 5 ∗ 1 0 4 1 \leq apples.length \leq 5 * 10^4 1apples.length5104
  2. 0 ≤ a p p l e s [ i ] ≤ 5 ∗ 1 0 4 0 \leq apples[i] \leq 5 * 10^4 0apples[i]5104
  3. 1 ≤ d a y s [ i ] ≤ 5 ∗ 1 0 4 1 \leq days[i] \leq 5 * 10^4 1days[i]5104
  4. 每天至少有一个苹果,即 a p p l e s . l e n g t h = = d a y s . l e n g t h apples.length == days.length apples.length==days.length

思路

这个问题可以通过贪心算法来解决。我们可以维护一个优先队列(最小堆),存储未来几天内会坏掉的苹果。每天,我们从队列中移除已经坏掉的苹果,然后根据当前的苹果数量和剩余天数来决定每天可以吃多少苹果。

代码

class Solution {
public:int eatenApples(vector<int>& apples, vector<int>& days) {int d = 0, ans = 0;map<int, int> dict; // 存储未来几天内会坏掉的苹果for (auto [n, t] : views::zip(apples, days)) {// 移除已经坏掉的苹果dict.erase(dict.begin(), dict.upper_bound(d));// 添加今天的苹果if (n)dict[d + t] += n;// 如果有苹果可以吃if (dict.size()) {ans++;// 吃掉一个苹果if (!--dict.begin()->second)dict.erase(dict.begin());}d++;}// 继续吃剩下的苹果while (dict.size()) {dict.erase(dict.begin(), dict.upper_bound(d));if (dict.empty())return ans;auto [t, n] = *dict.begin();dict.erase(dict.begin());int tmp = min(t - d, n);d += tmp;ans += tmp;}return ans;}
};

复杂度分析

时间复杂度

O ( n l o g n ) O(nlogn) O(nlogn),其中 n n n 是苹果的天数。主要时间消耗在对 map 的操作,每次插入和删除操作的时间复杂度为 O ( l o g n ) O(logn) O(logn)

空间复杂度

O ( n ) O(n) O(n)

结果

在这里插入图片描述

总结

本题是一个贪心算法的问题,关键在于理解如何维护一个存储未来几天内会坏掉的苹果的数据结构,并据此计算每天可以吃多少苹果。

http://www.15wanjia.com/news/195034.html

相关文章:

  • 动漫网站开发需求分析建设企业官网模板
  • 小橘子被做h网站泰安信息平台体温
  • 合肥网站建设是什么意思可视化手机网站开发工具
  • 国外免费推广网站免费app制作平台下载
  • 浙江建站管理系统价格昆明平台开发公司
  • 江苏省数字文化馆网站建设网站建设如何学
  • 自己做网站别人怎么看见做网站尺寸
  • 商业网站设计与制作移动端网站开发流程
  • 网站建设明细报价表 服务器仿 手机 网站模板html源码
  • 微网站模板标签女教师遭网课入侵直播录屏曝
  • 工具类网站开发2018建盏大师最新排名
  • 西宁网站开发多少钱wordpress 采集 伪原创
  • 龙岗企业网站制作公司亚马逊站外推广网站
  • 潍坊网站开发网站去除前台验证码
  • 做设计的搜素材上什么网站好网站建设数据库软件英文
  • 移动微网站建设二维码互联网营销宣传
  • 鼓楼区建设局网站模板网站试用
  • 网站运营需要什么条件网站开发数据共享
  • 铜陵app网站做招聘一个互联网公司可以做几个网站
  • 建设银行官方网站怎么优化
  • 全球电子商务网站排名简单的网站建设公司
  • 公司网站建设整体架构注册网站卖东西
  • 昆明网站运营上海市企业网站建设
  • 中国住房和城乡建设部网站首页结构化数据 wordpress
  • 设计师网站兼职网站wordpress主题
  • dz论坛识别手机网站自动跳转网页制作背景颜色
  • 国内设计好的网站案例如何制作一个自己的网站?
  • 企业手机网站建设流程怎样用自己的服务器建设网站
  • 微信app下载安装免费百度seo推广是什么
  • 企业网站制作方案网站建设费如何会计处理