Leetcode # 2483. Minimum Penalty for a Shop
- 2023.08.29
- ★★ Medium LeetCode Prefix Sum
Problem
https://leetcode.com/problems/minimum-penalty-for-a-shop
Solution
Time Complexity: O(len(customers))
Space Complexity: O(1)
(The input and output generally do not count towards the space complexity.)
class Solution: def bestClosingTime(self, customers: str) -> int: close_at = 0 penalty = min_penalty = customers.count("Y") for j in range(1, len(customers) + 1): penalty += -1 if customers[j - 1] == "Y" else 1 if penalty < min_penalty: close_at = j min_penalty = penalty return close_at
Two Passes → One Pass
因為題目沒有要求正確的 minimum penalty 的值
求的是相對關係下「令 penalty 最小」的「最早的關門時間」
所以不去計算起始的 penalty 也沒關係
penalty = min_penalty = customers.count(“Y”)0
Last Updated on 2023/08/29 by A1go