LeetCode-in-Java

1894. Find the Student that Will Replace the Chalk

Medium

There are n students in a class numbered from 0 to n - 1. The teacher will give each student a problem starting with the student number 0, then the student number 1, and so on until the teacher reaches the student number n - 1. After that, the teacher will restart the process, starting with the student number 0 again.

You are given a 0-indexed integer array chalk and an integer k. There are initially k pieces of chalk. When the student number i is given a problem to solve, they will use chalk[i] pieces of chalk to solve that problem. However, if the current number of chalk pieces is strictly less than chalk[i], then the student number i will be asked to replace the chalk.

Return the index of the student that will replace the chalk.

Example 1:

Input: chalk = [5,1,5], k = 22

Output: 0

Explanation: The students go in turns as follows:

Student number 0 does not have enough chalk, so they will have to replace it.

Example 2:

Input: chalk = [3,4,1,2], k = 25

Output: 1

Explanation: The students go in turns as follows:

Student number 1 does not have enough chalk, so they will have to replace it.

Constraints:

Solution

public class Solution {
    public int chalkReplacer(int[] chalk, int k) {
        long localSum = sum(chalk);
        int currentIndex = 0;
        if (localSum != 0) {
            int localK = (int) (k % localSum);
            while (chalk[currentIndex] <= localK) {
                localK -= chalk[currentIndex++];
            }
        }
        return currentIndex;
    }

    private long sum(int[] chalk) {
        long sum = 0;
        for (int i : chalk) {
            sum += i;
        }
        return sum;
    }
}