LeetCode 1894. 找到需要补充粉笔的学生编号
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1894. 找到需要补充粉笔的学生编号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
一個班級里有 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 <= 10^5 1 <= chalk[i] <= 10^5 1 <= k <= 10^9來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-the-student-that-will-replace-the-chalk
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:int chalkReplacer(vector<int>& chalk, int k) {long sum = 0;for(auto c : chalk)sum += c; // 所有學生需要的數量sum = k-k/sum*sum;//完整循環多少次后,還剩余的if(sum == 0) return 0;//能完整循環,第0號沒有了for(int i = 0; i < chalk.size(); ++i){sum -= chalk[i];//每個人消耗的if(sum < 0)//不夠了,返回編號return i;}return -1;} };140 ms 72.6 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1894. 找到需要补充粉笔的学生编号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Chapter1-3_Speech_Re
- 下一篇: python 执行完成后,cmd窗口自动