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

算法三:成绩排序 问题描述有 n 名学生,它们的学号分别是 1,2,…,n。这些学生都选修了邓老师的算法训练营、数据结构训练营这两门课程。学期结束了,所有学生的课程总评都已公布,所有总评分数都是 [0,100] 之间的整数。巧合的是,不存在两位同学,他们这两门课的成绩都完全相同。邓老师希望将这些所有的学生按这两门课程的总分进行降序排序,特别地,如果两位同学的总分相同,那邓老师希望把算法训练营得分更高的同学排在前面。... 阅读详情
题目:
  • 一个班级里有 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 的学生没有足够的粉笔,所以他需要补充粉笔。
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/find-the-student-that-will-replace-the-chalk
解题思路:
  • 看着磨磨叽叽说了一堆 其实很简答 一个数字k 有一个数组 循环顺序取元素n
  • 当k-n < 0 的时候 返回当前索引值
  • 瞬间想到的思路 无限循环数组 k -= n 这样在k值 小的时候是没问题的,问题是k很大的时候 速度堪忧
  • 所以可以算出数组元素的和值, 整数倍忽略、为什么忽略呢 整数倍就是正好走完整个数组重新走,没必要计算 ,所以就用 k / chalk.sum() 得到的余数 再从数组循环计算出索引
  • 我的初始想法 将不满 sum的k 和满sum的k分开计算 后来想了一下 好像并不用
代码实现
public int chalkReplacer(int[] chalk, int k) {
        // 先算出和值
        long total = 0;
        for (int num : chalk) {
            total += num;
        }
        // 得到余数 也就是去掉整数倍的运算
        k %= total;
        int length = chalk.length;
        // 计算当 k < k - arr[i] 时返回
        for (int i = 0; i < length; ++i) {
            if (chalk[i] > k) {
				return i;
            }
            k -= chalk[i];
        }
        // 默认返回值
        return -1;
    }
leetcode: 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 和一个整数 阅读详情

相关推荐

如何注册leetcode-code-bot:用于编程公会以跟踪其编码统计数据的不和谐机器人

如何注册leetcode Leetcode-Bot 用于编程公会以跟踪其编码统计数据的不和谐机器人。 !lc 寄存器!lc 寄存器!lc 发布 <leetcode> !lc 发布!lc 统计!lc 帖子!lc 自我统计 去做 用户应该能够自己注册,他们可以提供用户名或机器人从他们的不和谐用户名中选择它 用户可以使用问题 id 或 url 从 leetcode 发布问题,解析 url 并且机器人将问题作为消息发送 只有版主才能发布问题,请保持检查 编写脚本来抓取 leetcode 以备问题 用户可以对版主的 leetcode 问题帖子做出React 尝试 - 用户可以选择尝试问题 完成 - 用户完成问题后,用户可以将消息回复为已完成 帮助 - 如果用户遇到问题,用户可以选择帮助,这将通知版主 向机器人添加React事件以检查帖子的React以跟踪更新 统计页面将跟踪所有注册用户尝试和提交的问题 表的用户界面 获取所有已发布的问题以及有多少用户已解决和有多少用户未解决的统计数据 获取用户的自我统计信息 想法 NEXT RELEASE如果用户实际提交了问题,则自动抓取 leetcod

LeetCode 1894. 找到需要补充粉笔的学生编号--前缀和

找到需要补充粉笔的学生编号 一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。 给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i.

weixin_43918046的博客 315

西门子S7-1200与汇川SV660F伺服Profinet通讯调试实战

在工业自动化领域,Profinet作为工业以太网标准协议,凭借其高实时性和灵活组网能力,已成为伺服驱动器与PLC通讯的主流选择。其核心原理是通过设备名识别、IP分配以及标准报文(如111速度报文、105定位报文)传输控制字与状态字,实现驱动器的精准控制。相比传统脉冲或CANOpen方案,Profinet直连省去了协议转换网关,降低了成本与故障点,尤其适用于绕线设备、包装机械等中小型单轴或多轴运动控制系统。本文以西门子S7-1200 PLC搭配汇川SV660F伺服为例,完整梳理了从GSDMD组态、InoDri

weixin_29184371的博客 222

《LeetCode之每日一题》:144.找到需要补充粉笔的学生编号

找到需要补充粉笔的学生编号有关题目题解 题目链接:找到需要补充粉笔的学生编号 有关题目 一个班级里有 n 个学生,编号为 0 到 n - 1 。 每个学生会依次回答问题, 编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生, 然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。 给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。 一开始粉笔盒里总共有 k 支粉笔。 当编号为 i 的学生回答问题时,他会消耗 chalk[i]

MerryMaking7946的博客 279

MicroPython驱动ST7789屏避坑实录:从GB2312到完整中文字库的升级之路

本文详细介绍了使用MicroPython驱动ST7789显示屏实现完整中文字库显示的实战方案。从硬件选型到字库系统改造,再到内存优化和显示性能提升,提供了一套突破GB2312限制的全套中文显示解决方案,特别适合ESP32开发者在物联网设备中实现高质量中文显示。

weixin_29190573的博客 392

FOC实战笔记:RC吸收电路的设计考量与参数调优

本文深入探讨了FOC驱动器中RC吸收电路的设计与调优。针对MOS管开关过程中的电压尖峰问题,详细阐述了RC电路的钳位与能量吸收原理,并提供了从参数计算、实验调试到布局布线的完整实战指南,旨在帮助工程师有效提升系统可靠性与稳定性。

weixin_29219539的博客 273

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

题目 解题思路 先计算出次遍历所消耗的粉笔数,然后取余 这样操作后,再次遍历即可得到结果 Code class Solution { public int chalkReplacer(int[] chalk, int k) { // n个学生,编号0-n - 1 // 回答顺序 0 - n -1 // 共k支粉笔,消耗chalk[i],当剩余量小于时,补充粉笔,返回需要补充的编号 int n = chalk.length;

沉心静气的博客 325

UM982上位机调试【精简版】

分享一些关于UM982卫导模块上位机调试的简快捷单小功能。

在线求职中... 1万+

力扣(LeetCode1894. 找到需要补充粉笔的学生编号(C语言)

前缀和+二分查找。

墨染 466

从零到一:用AXI DataMover在Zynq MPSoC上实现高效DMA传输(附Vitis HLS驱动示例)

本文详细介绍了如何在Xilinx Zynq UltraScale+ MPSoC平台上使用AXI DataMover实现高效的DMA数据传输。通过解析AXI DataMover架构、Vivado工程配置、Vitis HLS驱动开发及性能优化技巧,帮助开发者快速构建高性能数据传输通道,并提供了可直接复用的代码示例。

weixin_42520796的博客 423

Jetson Orin NX系统克隆术:如何快速备份与还原你的开发环境(附完整命令行)

本文详细介绍了Jetson Orin NX系统克隆的完整流程,这是一种超越简单备份的完整镜像方案。通过命令行操作,可实现开发环境(包括引导程序、内核、根文件系统及所有配置)的快速备份与还原,确保批量部署时环境的完全一致性与高效性,尤其适合机器人、边缘AI等项目的团队协作。

weixin_29191081的博客 155

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

文章目录1. 题目2. 解题 1. 题目 一个班级里有 n 个学生,编号为 0 到 n - 1 。 每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。 给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。 一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。 如果剩余粉笔数量 严格小于 chalk[i]

Michael是个半路程序员 476

0 基础学前端:100 天拿 offer 实战课(第 16 天)—— JS 数组高级方法:数据处理效率翻倍,代码更简洁

方法名核心作用回调函数返回值返回结果适用场景map数据转换转换后的新元素新数组(长度与原数组一致)格式转换、新增字段、生成 DOM 字符串filter数据筛选true(保留)/false(过滤)新数组(符合条件的元素)筛选符合条件的元素(如未完成计划、今天的评论)reduce数据汇总新的累加值任意类型(数字、对象等)求和、计数、分组、多数据汇总find查找元素true(匹配)/false(不匹配)第一个匹配的元素 /undefined。

苏打水.X的博客 131

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

Leetcode 1894. 找到需要补充粉笔的学生编号 一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。 给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k&nbsp

人生就是一场修行 232

GB 47955—2026 L2组合驾驶辅助强制国标全解、合规方案与工程代码落地

GB 47955—2026 L2辅助驾驶国标合规工程代码# 运行环境:Python3.8+,适配车载仿真、台架测试、算法验证场景# 依赖安装:pip install numpy dataclasses tqdm struct time json# ===================== 国标强制时序参数(完全对标GB 47955—2026) =====================HAND_OFF_FIRST_WARN = 5.0 # 手部脱离5s触发一级预警。

lin_xiu的博客 295

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【力扣】1894. 找到需要补充粉笔的学生编号

题目: 一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。 给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i 需要 补充 粉笔。 请

漆黑梦工厂 333

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LeetCode刷题1894-中等-找到需要补充粉笔的学生编号

数组,数学方法

布小禅的博客 1493

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

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

1894. 找到需要补充粉笔的学生编号 题目 一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。 给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i

qq_44633470的博客 189

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

Problem Source : https://leetcode-cn.com/problems/find-the-student-that-will-replace-the-chalk Solution Source : https://github.com/hujingbo98/algorithm/blob/master/source/leetcode/1894_FindTheStudentThatWillReplaceTheChalk.cpp 1894、找到需要补充粉笔的学生编号 一个班级里有&n.

博弈的博客 157

模拟卷Leetcode【普通】1894. 找到需要补充粉笔的学生编号

当编号为i的学生回答问题时,他会消耗chalk[i]支粉笔。每个学生会依次回答问题,编号为0的学生先回答,然后是编号为1的学生,以此类推,直到编号为n-1的学生,然后老师会重复这个过程,重新从编号为0的学生开始回答问题。链接https//leetcode-cn.com/problems/find-the-student-that-will-replace-the-chalk。输入chalk=[3,4,1,2],k=25。请你返回需要补充粉笔的学生编号。...

卷子的博客 607

LeetCode1221.分割平衡字符串&1894.找到需要补充粉笔的学生编号(C++)

一个普通解法的简单题LeetCode1221.分割平衡字符串 一个普通解法的中等题LeetCode1894.找到需要补充粉笔的学生编号

Dululuya 172

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

难度:中等 一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。 给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i 需要 补充 粉笔。

辰拾玖的博客 233

【冲冲冲】LeetCode1894. 找到需要补充粉笔的学生编号

一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。 给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i 需要 补充 粉笔。 请你返回.

tripleEyeAline的博客 224

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

粉笔真多

qq_62625344的博客 502

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

z

31楼下小黑的博客 210
上一篇: Leetcode新手做题1221. 分割平衡字符串
下一篇: Leetcode剑指 Offer 24. 反转链表
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值