算法题:消耗的总时间求解问题

本文探讨了一道算法题——羊吃草问题,即一群羊按顺序吃一堆草,每只羊单位时间吃掉一个单位的草。通过输入羊的个数和草堆信息,求解完成所有草堆所需时间。解题策略是建立一个羊的数量大小的数组,每次将草堆大小累加到最小值的位置,最终最大值即为所需时间。例如,当草堆为[1, 2, 3, 2],羊的个数为3时,总时间为3;当草堆为[2, 19, 3, 22, 3, 10, 22],羊的个数为4时,总时间为27。" 52495901,5682477,Presto启动与初始化详解,"['Presto', '数据库查询', '服务启动', '任务管理', '查询管理']
摘要由CSDN通过智能技术生成

题目(羊吃草):
假设有一群羊,吃一片草堆。

  1. 一个羊单位时间能够吃掉一个单位的草堆;
  2. 同一时间内一个草堆只能被一个羊吃;
  3. 羊群只能由近到远的吃草堆,吃完近处的草堆才能去吃远处的草堆。

羊的个数 n , 1 < n < 1000;
草堆堆数t, 0 < t < 100000;
单个草堆的大小k, 0 < k < 10000;
请问吃完所有的草堆需要花多长时间?
输入 (n, [list])

举例1:
草堆数组:[1, 2, 3, 2]
羊个数:3
总的时间:3
举例2:
草堆数组:[2, 19 , 3, 22 ,3 ,10, 22]
羊的个数:4
总的时间:27


解题思路
累加+找最小数。
建立一个数组,大小等于羊的个数,找到最小数,遍历草堆的每个元素,每次累加到羊数组的最小的位置。最后,结果为数组里面的最大数。

int summary(int n, vector<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值