首页 > 编程语言 >算法题总结-吃苹果(有序处理)

算法题总结-吃苹果(有序处理)

时间:2023-06-18 16:55:04浏览次数:44  
标签:吃掉 示例 出来 days 算法 apples 有序 苹果

原题
https://leetcode.cn/problems/maximum-number-of-eaten-apples/
有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i + days[i] 天时)腐烂,变得无法食用。也可能有那么几天,树上不会长出新的苹果,此时用 apples[i] == 0 且 days[i] == 0 表示。
你打算每天 最多 吃一个苹果来保证营养均衡。注意,你可以在这 n 天之后继续吃苹果。
给你两个长度为 n 的整数数组 days 和 apples ,返回你可以吃掉的苹果的最大数目。
输入示例

apples = [1,2,3,5,2], days = [3,2,1,4,2]

输出示例

7

解释:

- 第一天,你吃掉第一天长出来的苹果。
- 第二天,你吃掉一个第二天长出来的苹果。
- 第三天,你吃掉一个第二天长出来的苹果。过了这一天,第三天长出来的苹果就已经腐烂了。
- 第四天到第七天,你吃的都是第四天长出来的苹果。

解析:

# 1.每天早上检查过期苹果
# 2.上午查看是否有苹果可以拿
# 3.中午取一个框 框中取一个苹果 判断框里面是否还有苹果 没有就直接将框取出来

标签:吃掉,示例,出来,days,算法,apples,有序,苹果
From: https://www.cnblogs.com/dengliang356a/p/17489335.html

相关文章

  • TensorFlow05.3 神经网络反向传播算法-多层感知机梯度(理论知识)
    首先这个是链式法则:如果扩展到多层感知机的话:我们在学这个的时候首先知道一个东西:所以这个整体的步骤就是:1.2.3.......
  • 代码随想录算法训练营第十天| 20. 有效的括号 1047. 删除字符串中的所有相邻重复项
    20.有效的括号  特点:左括号之后,可能还会有左括号,但是只要有右括号,那么它必须立刻和最近的左括号代码:1charreturnRightChar(char&c)2{3switch(c)4{5case'[':return']';6case'(':return')';7case'{':r......
  • TensorFlow05.3 神经网络反向传播算法-链式法则
    1BasicRule2Productrule3QuotientRule4Chainrule(链式法则)在这个神经网络中:......
  • TensorFlow05.2 神经网络反向传播算法-单输出感知机和多输出感知机及其梯度
    1单输出感知机在这里我们可以看到,\(W_2,1^1\)其中他的下标第一个2,表示的连着上一层的x2,下标第一个1代表着连着下一侧的x1。然后上标1代表着第一层。E是做了一个loss处理。\(X_i^1\)这个下标的i代表当前层数节点的编号,然后这个1代表着第1层。\(W_i,j^k\),i表示上一层的节点编......
  • 算法刷题记录:AcWing 4908. 饥饿的牛
    目录题目链接:题目分析:时间复杂度SF代码AC代码:题目链接:https://www.acwing.com/problem/content/description/4911/题目分析:数据范围最大\(10^{14}\),所以如果采用枚举一定会TLE,因为只有\(10^5\)天会运来新的草,所以我们可以只考虑运草的天。假设当前到\(d_2\)天之前剩余干......
  • 【技术积累】算法中的排序算法【一】
    冒泡排序(BubbleSort)算法描述:通过不断地交换相邻两个元素,把最大的元素移到数组的最后面,然后不断缩小排序范围,直到整个数组有序。算法步骤:遍历整个待排序的数组。比较相邻的两个元素。如果前面的元素比后面的元素大,就交换它们重复以上步骤,直到整个数组有序。伪代码:proced......
  • 算法设计
    公司计划面试2N人。第i人飞往A市的费用为costs[i][0],飞往B市的费用为costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有N人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]](第i个人飞往两个城市的费用)输出:110假设你是黄牛,用贪心算法找到月饼的最......
  • 万能欧几里得算法
    问题有一条直线\(y=\frac{Px+K}{Q}\),其中\(P\ge0\)且\(0\leK<Q\)。有两种操作\(U,R\),从左到右扫描这条直线在\((0,L]\)中的部分,若直线跨越了\(y=k(k\in\mathbb{Z})\)这条直线,则执行\(U\)操作;若直线跨越了\(x=k(k\in\mathbb{Z})\)这条直线,则执行\(R\)操作。若......
  • 归并排序算法及C语言实现
    一、归并排序的原理归并排序(MergeSort)是一种基于分治思想的高效排序算法。其核心思想是将待排序的数组分为两个相等的部分,对这两个部分分别进行递归排序,最后将两个有序的子数组合并成一个有序的整体。可见归并排序的时间复杂度为O(nlog2n)。下面我们来详细地介绍一下归并排序的过......
  • 算法与数据结构Day01
    希尔排序的实现#include<stdio.h>#include<stdlib.h>typedefintKeyType;typedefstruct{KeyType*elem;/*elem[0]一般作哨兵或缓冲区*/intLength;}SqList;voidCreatSqList(SqList*L);/*待排序列建立,......