Skip to main content

1052.js

/** ------------------------------------------------------------------------------
*
* 1052. Grumpy Bookstore Owner
* https://leetcode.com/problems/grumpy-bookstore-owner
*
------------------------------------------------------------------------------ */
/**
* @param {number[]} customers
* @param {number[]} grumpy
* @param {number} minutes
* @return {number}
*/
var maxSatisfied = function (customers, grumpy, minutes) {
const n = customers.length
let grumpyZero = 0

for (let i = 0; i < n; i++) {
if (grumpy[i] === 0) {
grumpyZero += customers[i]
}
}

let addSaf = 0
let maxSaf = 0

for (let i = 0; i < n; i++) {
if (grumpy[i] === 1) {
addSaf += customers[i]
}

if (i >= minutes && grumpy[i - minutes] === 1) {
addSaf -= customers[i - minutes]
}
maxSaf = Math.max(maxSaf, addSaf)
}
return grumpyZero + maxSaf
}

console.log(maxSatisfied([1, 0, 1, 2, 1, 1, 7, 5], [0, 1, 0, 1, 0, 1, 0, 1], 3))