力扣第42周双周赛(上)

  • 题目
  • 思路与算法
  • 代码实现
  • 写在最后

题目

    1. 无法吃午餐的学生数量
    1. 平均等待时间

思路与算法

    1. 无法吃午餐的学生数量

    本题直接暴力模拟也没问题,但是这应该不是题目的本意,我们可以将排队的同学想象为两个队列,一队都喜欢圆形三明治,一队都喜欢方形三明治,本题的关键三明治是栈顶的三明治,换句话说理解为一个脾气很大的老板,他每次做一个三明治,如果队列的同学都不喜欢,那么他就不做了下班。所以只需要根据遍历老板做出的三明治的队列即可,直到做出一个圆形三明治,但排圆形三明治的队列没人了,那么他下班,或者他做了一个方形三明治,但是排方形三明治队的人也都没有了,那么下班。因此可以使用O(N)的复杂度解决问题。而模拟则肯定花费更多的时间损耗。

    1. 平均等待时间
      相比与上题本题更加倾向于直接模拟,依次计算当前时间和等待时间即可,注意转换类型精度的要求即可。

代码实现

  1. 无法吃午餐的学生数量
class Solution {public int countStudents(int[] students, int[] sandwiches) {// nums[0]喜欢圆形三明治的学生个数;nums[1]喜欢方形的学生个数;int[] nums = new int[2];// 排队for (int s : students) nums[s]++;// 依次购买,但每次买之前判断是否有队列已经没人了,没人的话计算剩下队列的人数for (int i = 0; i < sandwiches.length; i++) {if (nums[sandwiches[i]] == 0) return students.length - i;// 每卖出一个三明治对应的队列排队人数-1nums[sandwiches[i]]--; }return 0;}
}
  1. 平均等待时间
class Solution {public:double averageWaitingTime(vector<vector<int>>& customers) {// time为当前时间,wait为等待时间long long time = 0;long long wait = 0;int n = customers.size();for (int i = 0; i < n; i++) {// 顾客到达的时候,更新当前时间if (time < customers[i][0]) {time = customers[i][0];}// 更新做菜完的当前时间time += customers[i][1];// 计算等待的时间累加wait += time - customers[i][0];}// 求平均double res = (double) wait / n;return res;}
};

写在最后

吾辈当自强

20210101:力扣第42周双周赛(上)相关推荐

  1. 20210119:力扣第42周双周赛(下)

    力扣第42周双周赛(下) 题目 思路与算法 代码实现 写在最后 题目 修改后的最大二进制字符串 得到连续 K 个 1 的最少相邻交换次数 思路与算法 修改后的最大二进制字符串 这道题的思路很简单,交换 ...

  2. 20211201:力扣第268周双周赛(上)

    力扣第268周双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 两栋颜色不同且距离最远的房子 给植物浇水 思路与算法 双指针遍历即可,维护那个索引最大差值即可. 模拟题,正常情况需要每次走一步 ...

  3. 20200827:2020力扣第33周双周赛题解

    2020力扣第33周双周赛题解 题目一 示例 解题思路与代码实现 题目二 示例 解题思路与代码实现 题目三 解题思路与代码实现 题目四 示例 解题思路与代码实现 写在最后 题目一 题目一:千位分隔数 ...

  4. 20200727:力扣第31周双周赛题解

    力扣第31周双周赛题解 题目一:在区间范围内统计奇数数目 给你两个非负整数low和high,请你返回low和high之间(包含二者)奇数的数目 0 <= low <= high <= ...

  5. 20220219:力扣第72场双周赛题解

    力扣第72场双周赛 题目 思路与算法 代码实现 写在最后 题目 统计数组中相等且可以被整除的数对 找到和为给定整数的三个连续整数 拆分成最多数目的偶整数之和 统计数组中好三元组数目 思路与算法 前三题 ...

  6. 20210530:力扣第53场双周赛题解

    力扣第53场双周赛题解 题目 思路与算法 代码实现 写在最后 题目 长度为三且各字符不同的子字符串 数组中最大数对和的最小值 矩阵中最大的三个菱形和 思路与算法 长度为三且各字符不同的子字符串:遍历查 ...

  7. 20201023:力扣第37场双周赛(上)

    力扣第37场双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 删除某些元素后的数组均值 网络信号最好的坐标 思路与算法 第二题直接暴力就可以了,计算每个点的所有偏移量存入list,即以(0,0 ...

  8. 力扣第 104 场双周赛 2681. 英雄的力量

    原题链接力扣 题目大意:我开始看成连续子段了,写了个递归程序....... 一个数组任选一个子序列,子序列的力量值=最大值平方*最小值.求所有子序列的力量和. 分析过程:如序列长度为n,子序列总数为2 ...

  9. 以赛促练-力扣第85场双周赛以及第307场周赛

    文章目录 第85场双周赛 T3.字母移位II T4.删除操作后的最大子段和 第307场周赛 T2.最大回文数字 T3.感染二叉树需要的总时间 T4.找出数组的第K大和 第85场双周赛 T1直接暴力枚举 ...

最新文章

  1. Java动态代理和静态代理区别
  2. xhprof 使用笔记
  3. 腾讯张正友:计算机视觉的三生三世
  4. python基础回顾
  5. python序列类型-python序列类型有哪些
  6. 易语言 精易模块 操作json数据
  7. 用Go开发支持百万级数据量的高性能缓存服务
  8. 看完这篇后,别再说你不懂JVM类加载机制了~
  9. 信息图表是如何炼成的(二):图标与线条
  10. oppo r11s鸿蒙固件,OPPO R11s Plus原厂rom固件系统升级包下载
  11. 将人工智能(AI)应用于软件测试中
  12. 如何使用markdown创建个人网站
  13. Python -- 堆数据结构 heapq - I love this game! - 博客频道 - CSDN.NET
  14. JSTL引发的内存泄露
  15. 【操作系统⑧】——信号量与PV操作(下)【哲学家进餐问题 AND型信号量 信号量集机制】
  16. 分巧克力(二分法,且注意避免边界问题)
  17. Windows cmd关机重启命令
  18. java+springboot的大学生心理健康测试测评系统vue
  19. java.exe应用程序出错_EXPLORER.EXE应用程序错误的原因和解决办法
  20. ECharts之横向百分比柱状图

热门文章

  1. @程序员 腾讯云计算机视觉应用干货,不容错过!
  2. 今天,GitHub 挂了!
  3. 程序员,过了 40 岁,连 107 岁的 IBM 都不要我们了!
  4. 封杀抖音,微博在紧张什么?
  5. 蒋涛:重新回归的我,将带领 CSDN 全方位升级,为 AI 转型者打造一站式平台
  6. CES 2018 七大看点前瞻:模块化电视、枪型游戏设备……
  7. javaweb实训第三天下午——Web基础-Servlet交互JSP原理及运用
  8. android 日历图,Android中的自定义日历视图
  9. 梯度下降的线性回归用python_一元线性回归和梯度下降的python代码实现
  10. python cnn代码详解图解_基于TensorFlow的CNN实现Mnist手写数字识别