https://leetcode.com/problems/length-of-longest-subarray-with-at-most-k-frequency 2958. Length of Longest Subarray With at Most K Frequency 給你一個陣列 nums 和一個數字 k,如果一個子陣列滿足所有數字的出現次數都不超過 k ,他是一個 good 陣列,找出最長的 goood 子陣列長度。 思路: 1.找滿足條件的子陣列 -> 滑動窗口,維護一個窗口並記錄窗口中這個數字出現的次數, 如果超過 k 次就把窗口左邊的元素pop直到滿足小於等於k。 2.每次用當前窗口的大小更新解。 pycode: ---------------------------------------------- class Solution: def maxSubarrayLength(self, nums: List[int], k: int) -> int: dict = defaultdict(int) l = 0 res = 0 for r in range(len(nums)): dict[nums[r]] += 1 while dict[nums[r]] > k: dict[nums[l]] -= 1 l += 1 res = max(res, r - l + 1) return res ---------------------------------------------- -- https://i.imgur.com/4nfnn6f.jpg
-- ※ 發信站: 批踢踢實業坊(ptt-web.org.tw), 來自: 101.138.8.233 (臺灣) ※ 文章網址: https://ptt-web.org.tw/Marginalman/M.1711587965.A.234
digua: 大師 03/28 09:12
oinishere: 大師 03/28 09:25