【教3妹学算法-每日3题(1)】采集果实

插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 
坚持不懈,越努力越幸运,大家一起学习鸭~~~

3妹

3妹:2哥,听说武汉某高校有霍乱,霍乱是什么啊?
2哥:霍乱是因摄入的食物或水受到霍乱弧菌污染而引起的一种急性腹泻性传染病。每年,估计有300万~500万霍乱病例,另有10万~12万人死亡。病发高峰期在夏季,能在数小时内造成腹泻脱水甚至死亡。
3妹:啊, 这么严重。
2哥:不要恐慌,目前武汉也只有一例,并且这个病的死亡核概率还是很小的。
3妹:那怎样避免霍乱呢?
2哥:普通人,要做到勤洗手,吃熟食, 不吃生的东西,不要去不干净的路边摊吃东西。
3妹:啊, 我还想去路边吃烧烤呢,看来还是算了吧。
2哥:3妹就知道吃,还是在家好好学习吧。

讲课

题目:

欢迎各位勇者来到力扣新手村,本次训练内容为「采集果实」。

在新手村中,各位勇者需要采集一些果实来制作药剂。time[i] 表示勇者每次采集 1~limit 颗第 i 种类型的果实需要的时间(即每次最多可以采集 limit 颗果实)。

当前勇者需要完成「采集若干批果实」的任务, fruits[j] = [type, num] 表示第 j 批需要采集 num 颗 type 类型的果实。采集规则如下:

按 fruits 给定的顺序依次采集每一批次
采集完当前批次的果实才能开始采集下一批次
勇者完成当前批次的采集后将清空背包(即多余的果实将清空)
请计算并返回勇者完成采集任务最少需要的时间。

示例 1:

输入:time = [2,3,2], fruits = [[0,2],[1,4],[2,1]], limit = 3

输出:10

解释:
由于单次最多采集 3 颗
第 0 批需要采集 2 颗第 0 类型果实,需要采集 1 次,耗时为 21=2
第 1 批需要采集 4 颗第 1 类型果实,需要采集 2 次,耗时为 3
2=6
第 2 批需要采集 1 颗第 2 类型果实,需要采集 1 次,耗时为 2*1=2
返回总耗时 2+6+2=10

示例 2:

输入:time = [1], fruits = [[0,3],[0,5]], limit = 2

输出:5

解释:
由于单次最多采集 2 颗
第 0 批需要采集 3 颗第 0 类型果实,需要采集 2 次,耗时为 12=2
第 1 批需要采集 5 颗第 0 类型果实,需要采集 3 次,耗时为 1
3=3
需按照顺序依次采集,返回 2+3=5

提示:

1 <= time.length <= 100
1 <= time[i] <= 100
1 <= fruits.length <= 10^3
0 <= fruits[i][0] < time.length
1 <= fruits[i][1] < 10^3
1 <= limit <= 100

#思路:
模拟采集过程,对每一批次 增加除以 limit 的次数,若不能整除则加一次

java代码:

class Solution {
  public int getMinimumTime(int[] time, int[][] fruits, int limit) {
    int res = 0;
    for (int[] f : fruits) {
      res += time[f[0]] * (f[1] / limit + (f[1] % limit != 0 ? 1 : 0));
    }
    return res;
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值