1894. 找到需要补充粉笔的学生编号
思路:直接模拟即可,K可以减去多少组学生总和,取余,再拿余数依次对每一个学生比较大小。
代码实现:
class Solution {
public:
int chalkReplacer(vector<int>& chalk, int k) {
long long sum = 0;//注意溢出
for(int x:chalk) sum += x;
int remain = k%sum;
for(int i = 0;i < chalk.size();i ++){
if(chalk[i] > remain) return i;
remain -= chalk[i];
}
return -1;
}
};
思路2;前缀和+二分