LeetCode 2483. 商店的最少代價
給你一個顧客訪問商店的日志,用一個下標從 0 開始且只包含字符 'N' 和 'Y' 的字符串 customers 表示:
如果第 i 個字符是 'Y' ,它表示第 i 小時有顧客到達。
如果第 i 個字符是 'N' ,它表示第 i 小時沒有顧客到達。
如果商店在第 j 小時關門(0 <= j <= n),代價按如下方式計算:
在開門期間,如果某一個小時沒有顧客到達,代價增加 1 。
在關門期間,如果某一個小時有顧客到達,代價增加 1 。
請你返回在確保代價 最小 的前提下,商店的 最早 關門時間。
注意,商店在第 j 小時關門表示在第 j 小時以及之后商店處于關門狀態(tài)。
?
示例 1:
輸入:customers = "YYNY"
輸出:2
解釋:
- 第 0 小時關門,總共 1+1+0+1 = 3 代價。
- 第 1 小時關門,總共 0+1+0+1 = 2 代價。
- 第 2 小時關門,總共 0+0+0+1 = 1 代價。
- 第 3 小時關門,總共 0+0+1+1 = 2 代價。
- 第 4 小時關門,總共 0+0+1+0 = 1 代價。
在第 2 或第 4 小時關門代價都最小。由于第 2 小時更早,所以最優(yōu)關門時間是 2 。
示例 2:
輸入:customers = "NNNNN"
輸出:0
解釋:最優(yōu)關門時間是 0 ,因為自始至終沒有顧客到達。
示例 3:
輸入:customers = "YYYY"
輸出:4
解釋:最優(yōu)關門時間是 4 ,因為每一小時均有顧客到達。
?
提示:
1 <= customers.length <= 105
customers 只包含字符 'Y' 和 'N' 。
計算2個數(shù)組;1個是當前位置前面Y的數(shù)量,一個是當前位置后面N的數(shù)量,考慮到最后跟0,所以數(shù)組的長度是n+2,
這樣計算當前位置Y數(shù)量+當前位置后N的數(shù)量的最大值即可返回;
下面是代碼:
執(zhí)行用時:14 ms, 在所有?Java?提交中擊敗了28.14%的用戶
內存消耗:43.3 MB, 在所有?Java?提交中擊敗了11.06%的用戶