文章目录

  • 1. 题目
  • 2. 解题

1. 题目

有一个餐厅,只有一位厨师。你有一个顾客数组 customers ,其中 customers[i] = [arrivali, timei]

  • arrivali 是第 i 位顾客到达的时间,到达时间按 非递减 顺序排列。
  • timei 是给第 i 位顾客做菜需要的时间

当一位顾客到达时,他将他的订单给厨师,厨师一旦空闲的时候就开始做这位顾客的菜。
每位顾客会一直等待到厨师完成他的订单。
厨师同时只能做一个人的订单。
厨师会严格按照 订单给他的顺序 做菜。

请你返回所有顾客需要等待的 平均 时间。与标准答案误差在 10-5 范围以内,都视为正确结果。

示例 1:
输入:customers = [[1,2],[2,5],[4,3]]
输出:5.00000
解释:
1) 第一位顾客在时刻 1 到达,厨师拿到他的订单并在时刻 1 立马开始做菜,并在时刻 3 完成,第一位顾客等待时间为 3 - 1 = 2 。
2) 第二位顾客在时刻 2 到达,厨师在时刻 3 开始为他做菜,并在时刻 8 完成,第二位顾客等待时间为 8 - 2 = 6 。
3) 第三位顾客在时刻 4 到达,厨师在时刻 8 开始为他做菜,并在时刻 11 完成,第三位顾客等待时间为 11 - 4 = 7 。
平均等待时间为 (2 + 6 + 7) / 3 = 5 。示例 2:
输入:customers = [[5,2],[5,4],[10,3],[20,1]]
输出:3.25000
解释:
1) 第一位顾客在时刻 5 到达,厨师拿到他的订单并在时刻 5 立马开始做菜,并在时刻 7 完成,第一位顾客等待时间为 7 - 5 = 2 。
2) 第二位顾客在时刻 5 到达,厨师在时刻 7 开始为他做菜,并在时刻 11 完成,第二位顾客等待时间为 11 - 5 = 6 。
3) 第三位顾客在时刻 10 到达,厨师在时刻 11 开始为他做菜,并在时刻 14 完成,第三位顾客等待时间为 14 - 10 = 4 。
4) 第四位顾客在时刻 20 到达,厨师拿到他的订单并在时刻 20 立马开始做菜,并在时刻 21 完成,第四位顾客等待时间为 21 - 20 = 1 。
平均等待时间为 (2 + 6 + 4 + 1) / 4 = 3.25 。提示:
1 <= customers.length <= 10^5
1 <= arrivali, timei <= 10^4
arrivali <= arrivali+1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/average-waiting-time
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 模拟
class Solution {public:double averageWaitingTime(vector<vector<int>>& customers) {long long curtime = customers[0][0], arrivetime, waittimes = 0, n = customers.size();for(int i = 0; i < n; i++) {arrivetime = customers[i][0];//到达时间int needtime = customers[i][1];//做菜时间curtime = max(curtime, arrivetime);//max,比如到达时间晚于当前时间curtime += needtime;//做菜去了waittimes += curtime - arrivetime;//等待时间}return waittimes/double(n);}
};

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1701. 平均等待时间(模拟)相关推荐

  1. 迅雷面试题: 模拟银行一天的工作, 统计vip客户和普通客户的办理业务的平均等待时间.

    需求如下: 某银行的个人业务采用比较流行的取号叫号方式,该行的个人用户分为金卡用户和普通卡用户. 个人业务窗口也分为金卡窗口和普通卡窗口,金卡窗口有金卡客户等待叫号时只为金卡用户服务, 普通卡窗口在有 ...

  2. Leetcode1701. 平均等待时间[C++题解]:模拟题

    文章目录 题目分析 题目链接 题目分析 题意: 按照到达时间从小到大进来一批客人,每个顾客有到达时间和服务时间.求平均等待时间. 思路: 按照到达时间模拟即可.需要注意的是,分情况:每个顾客来的时候可 ...

  3. 作业周转时间以及平均等待时间

    现有4个同时到达的作业J1,J2,J3和J4,它们的执行时间分别是1小时,3小时,5小时,7小时,系统按单道方式运行且采用短作业优先算法,则平均周转时间是()小时 平均等待时间:将所有作业的运行时间加 ...

  4. Leetcode.1223 掷骰子模拟

    题目链接 Leetcode.1223 掷骰子模拟 Rating : 2008 题目描述 有一个骰子模拟器会每次投掷的时候生成一个 1 到 6 的随机数. 不过我们在使用它时有个约束,就是使得投掷骰子时 ...

  5. 计算机组成原理平均等待时间,计算机组成原理课后习题答案(一到九章)

    (3)各芯片地址分配表: 0 0000 0000 0000 0000 - 0 0001 1111 1111 1111 0 0000H-01FFFH 8KROM 1片 0 0010 0000 0000 ...

  6. leetcode - 1223. 掷骰子模拟

    1223. 掷骰子模拟 有一个骰子模拟器会每次投掷的时候生成一个 111 到 666 的随机数. 不过我们在使用它时有个约束,就是使得投掷骰子时,连续 掷出数字 iii 的次数不能超过 rollMax ...

  7. [leetcode]006-ZigZag Conversion[快乐模拟]

    1. 原题 https://leetcode.com/problems/zigzag-conversion/ 2. 思路 题意:按照给出的z字形顺序输出字符串.模拟题,中等难度. 根据z字形顺序,把字 ...

  8. Leetcode题874、模拟行走机器人(Python题解)

    问题: 题目来源:力扣(LeetCode) leetcode874.模拟行走机器人 难度:简单 分析: 逻辑模拟. 几个小技巧: 1.list是顺序查找,set是哈希查找,所以set会很快.set实际 ...

  9. [leetcode] 874. 行走机器人模拟(周赛)

    874. 行走机器人模拟 模拟 描述方向时有个技巧:int[][] dx = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; 分别存储机器人向上.右.下.左走时,坐标应该如何变 ...

最新文章

  1. PCL点云特征描述与提取(1)
  2. 使用 python 的单人AI 扫雷游戏
  3. Jquery滚动监听和附加导航
  4. 算法--------最长连续序列(Java版本)
  5. leetcode:44. 通配符匹配
  6. windows双机调试
  7. ORACLE10回收站-Recyclebin
  8. Exynos4412启动过程分析
  9. Swift iOS HealthKit 使用案例: 获取体温列表 HKHealthStore
  10. 伤感日志:时光远走,流年轻度
  11. 1002内容预告:软件中国年度大盘点
  12. Python数据分析-北京房价分析
  13. 计算机面板里左侧的桌面不见了,WinXP控制面板左侧的切换分类视图不见了如何找回 -电脑资料...
  14. Mac Office Word设置多级标题
  15. 移动支付难倒老年人 如何让他们不被时代抛弃?
  16. Kafka(9)副本(leader、flower、isr说明)
  17. 如何在命令行中使用 ftp 命令上传和下载文件
  18. 淘宝评论接口可以获取PC端,app端
  19. [Ubuntu] 可用云盘-尝试记录
  20. 手机模拟续航测试软件,续航能力:使用场景模拟测试_平板电脑评测-中关村在线...

热门文章

  1. 斯坦福计算机录取难吗,申请斯坦福究竟有多难? 什么样条件的人才能被斯坦福录取?斯坦福大学直播!...
  2. st官网下载stm32固件库方法
  3. C++/C 宏定义(define)中# ## 的含义(转)
  4. 面试题:找出公司员工最喜欢的k种水果
  5. Win10/Win7小技巧:教你如何彻底关闭系统进程
  6. LeetCode344——Reverse String(将字符串反转)
  7. s5pv210——I2C基础详解、I2C时序详解
  8. Linux下解压:tar、rar、7z命令
  9. Mybatis中trim的使用
  10. Java并发性和多线程介绍目录