zoukankan      html  css  js  c++  java
  • 刷题-力扣-1894. 找到需要补充粉笔的学生编号

    1894. 找到需要补充粉笔的学生编号

    题目链接

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

    题目描述

    一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。

    给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i 需要 补充 粉笔。

    请你返回需要 补充 粉笔的学生 编号 。

    示例 1:

    输入:chalk = [5,1,5], k = 22
    输出:0
    解释:学生消耗粉笔情况如下:
    - 编号为 0 的学生使用 5 支粉笔,然后 k = 17 。
    - 编号为 1 的学生使用 1 支粉笔,然后 k = 16 。
    - 编号为 2 的学生使用 5 支粉笔,然后 k = 11 。
    - 编号为 0 的学生使用 5 支粉笔,然后 k = 6 。
    - 编号为 1 的学生使用 1 支粉笔,然后 k = 5 。
    - 编号为 2 的学生使用 5 支粉笔,然后 k = 0 。
    编号为 0 的学生没有足够的粉笔,所以他需要补充粉笔。
    

    示例 2:

    输入:chalk = [3,4,1,2], k = 25
    输出:1
    解释:学生消耗粉笔情况如下:
    - 编号为 0 的学生使用 3 支粉笔,然后 k = 22 。
    - 编号为 1 的学生使用 4 支粉笔,然后 k = 18 。
    - 编号为 2 的学生使用 1 支粉笔,然后 k = 17 。
    - 编号为 3 的学生使用 2 支粉笔,然后 k = 15 。
    - 编号为 0 的学生使用 3 支粉笔,然后 k = 12 。
    - 编号为 1 的学生使用 4 支粉笔,然后 k = 8 。
    - 编号为 2 的学生使用 1 支粉笔,然后 k = 7 。
    - 编号为 3 的学生使用 2 支粉笔,然后 k = 5 。
    - 编号为 0 的学生使用 3 支粉笔,然后 k = 2 。
    编号为 1 的学生没有足够的粉笔,所以他需要补充粉笔。
    

    提示:

    • chalk.length == n
    • 1 <= n <= 105
    • 1 <= chalk[i] <= 105
    • 1 <= k <= 109

    题目分析

    1. 根据题目描述计算第几位学生消耗完粉笔
    2. 优化模拟,先计算所有学生消耗的粉笔总数sum,再k对sum取模,然后模拟学生消耗粉笔

    代码

    class Solution {
    public:
        int chalkReplacer(vector<int>& chalk, int k) {
            // 第 i 个学生消耗 chalk[i] 根粉笔
            // 开始时有 k 根粉笔
            long long int sum = 0;
            for (std::vector<int>::const_iterator it = chalk.cbegin(); it != chalk.cend(); ++it) {
                sum += *it;
            }
            k %= sum;
            for (int i = 0; i < chalk.size(); ++i) {
                if (k < chalk[i]) return i;
                k -= chalk[i];
            }
            return 0;
        }
    };
    
  • 相关阅读:
    阿里安全归零实验室招聘各路大牛!offer好说!
    露脸!钉钉通过SOC2隐私性原则审计,安全和隐私保护达超一流国际标准
    BAT齐聚阿里安全-ASRC生态大会:呼吁联合共建网络安全白色产业链
    v3-4_-vict-、-vinc-胜利,征服
    Grammar01 语法七要素之一_词类
    Grammar00_英语学习铁律
    SpokenEnglish01_ When's it due?
    SpringBoot31 重识Spring01-环境搭建、Actuator监控、属性配置、多环境配置
    Shrio04 自定义Realm
    Shrio03 Authenticator、配置多个Realm、SecurityManager认证策略
  • 原文地址:https://www.cnblogs.com/HanYG/p/15251126.html
Copyright © 2011-2022 走看看