leetcode1052愛生氣的書店老闆

2021-10-02 17:28:43 字數 1178 閱讀 2309

滑動視窗第三天

今天,書店老闆有一家店打算試營業 customers.length 分鐘。每分鐘都有一些顧客(customers[i])會進入書店,所有這些顧客都會在那一分鐘結束後離開。

在某些時候,書店老闆會生氣。 如果書店老闆在第 i 分鐘生氣,那麼 grumpy[i] = 1,否則 grumpy[i] = 0。 當書店老闆生氣時,那一分鐘的顧客就會不滿意,不生氣則他們是滿意的。

書店老闆知道乙個秘密技巧,能抑制自己的情緒,可以讓自己連續 x 分鐘不生氣,但卻只能使用一次。

請你返回這一天營業下來,最多有多少客戶能夠感到滿意的數量。

示例:

輸入:customers = [1,0,1,2,1,1,7,5], grumpy = [0,1,0,1,0,1,0,1], x = 3

輸出:16

解釋:書店老闆在最後 3 分鐘保持冷靜。

感到滿意的最大客戶數量 = 1 + 1 + 1 + 1 + 7 + 5 = 16.

6ms。首先算出不發動技能的時候,所獲得的滿意人數。然後再遍歷grumpy陣列,以x為視窗大小,左邊出去對應的操作,和右邊進來對應的操作,具體操作在下面的注釋裡面。

public

intmaxsatisfied

(int

customers,

int[

] grumpy,

int x)

// }

// for(int i=0;i

// if(grumpy[i]==1)

// }這兩個for用下面的乙個for替換了,但是提交之後反而是7ms,這就很迷惑

for(

int i=

0;i(i)}

result=sum;

//最初的視窗狀態,這之後視窗右滑,左端出去是0,不變;出去是1,減掉。右端進來,是0,不變;進來是1,加上。

for(

int i=

0;i(grumpy[i+x]==1

) result=math.

max(result,sum);}

return result;

}//40min

leetcode 5/100

LeetCode 1052 愛生氣的書店老闆

今天,書店老闆有一家店打算試營業 customers.length 分鐘。每分鐘都有一些顧客 customers i 會進入書店,所有這些顧客都會在那一分鐘結束後離開。在某些時候,書店老闆會生氣。如果書店老闆在第 i 分鐘生氣,那麼 grumpy i 1,否則 grumpy i 0。當書店老闆生氣時...

LeetCode1052 愛生氣的書店老闆

今天,書店老闆有一家店打算試營業 customers.length 分鐘。每分鐘都有一些顧客 customers i 會進入書店,所有這些顧客都會在那一分鐘結束後離開。在某些時候,書店老闆會生氣。如果書店老闆在第 i 分鐘生氣,那麼 grumpy i 1,否則 grumpy i 0。當書店老闆生氣時...

leetcode 1052 愛生氣的書店老闆

目錄 一 題目內容 二 解題思路 三 今天,書店老闆有一家店打算試營業 customers.length 分鐘。每分鐘都有一些顧客 customers i 會進入書店,所有這些顧客都會在那一分鐘結束後離開。在某些時候,書店老闆會生氣。如果書店老闆在第 i 分鐘生氣,那麼 grumpy i 1,否則 ...