Merge remote-tracking branch 'origin/master'

This commit is contained in:
huangge1199@hotmail.com 2021-09-10 18:51:21 +08:00
commit 147996dd5f

View File

@ -51,6 +51,7 @@
// Related Topics 数组 二分查找 前缀和 模拟 👍 4 👎 0 // Related Topics 数组 二分查找 前缀和 模拟 👍 4 👎 0
package leetcode.editor.cn; package leetcode.editor.cn;
//1894:找到需要补充粉笔的学生编号 //1894:找到需要补充粉笔的学生编号
class FindTheStudentThatWillReplaceTheChalk { class FindTheStudentThatWillReplaceTheChalk {
public static void main(String[] args) { public static void main(String[] args) {
@ -61,32 +62,49 @@ class FindTheStudentThatWillReplaceTheChalk{
//力扣代码 //力扣代码
//leetcode submit region begin(Prohibit modification and deletion) //leetcode submit region begin(Prohibit modification and deletion)
class Solution { class Solution {
// public int chalkReplacer(int[] chalk, int k) {
// int temp = k;
// int length = chalk.length;
// int[] free = new int[length];
// for (int i = 0; i < length; i++) {
// if (i == 0) {
// free[i] = chalk[i];
// } else {
// free[i] += chalk[i] + free[i - 1];
// }
// temp -= chalk[i];
// if (temp < 0) {
// return i;
// }
// }
// temp %= free[length - 1];
// if (temp == 0) {
// return 0;
// }
// for (int i = 0; i < length; i++) {
// temp -= chalk[i];
// if (temp < 0) {
// return i;
// }
// }
// return 0;
// }
public int chalkReplacer(int[] chalk, int k) { public int chalkReplacer(int[] chalk, int k) {
int temp = k; int size = chalk.length;
int length = chalk.length; int sum = 0;
int[] free = new int[length]; int i = 0;
for (int i = 0; i < length; i++) { for (; i < size && sum <= k; i++) {
if (i == 0) { sum += chalk[i];
free[i] = chalk[i];
} else {
free[i] += chalk[i] + free[i - 1];
} }
temp -= chalk[i]; if (i < size) {
if (temp < 0) { return i - 1;
return i;
} }
k %= sum;
i = 0;
for (; i < size && k >= 0; i++) {
k -= chalk[i];
} }
temp %= free[length - 1]; return i - 1;
if (temp == 0) {
return 0;
}
for (int i = 0; i < length; i++) {
temp -= chalk[i];
if (temp < 0) {
return i;
}
}
return 0;
} }
} }
//leetcode submit region end(Prohibit modification and deletion) //leetcode submit region end(Prohibit modification and deletion)