Re: [閒聊] 每日leetcode

作者: JIWP (JIWP)   2024-03-30 13:36:11
這題acceptance rate有57%應該算是hard裡面比較簡單的
992. Subarrays with K Different Integers
有一個array nums、整數 k
定義good subarrays:
當一個subarray裡有k種不同的整數,那這個sub array就是good subarray
思路 :
用sliding window + hash table
l:左指標代表目前subarray的起點
r:右指標代表目前subarray的終點
hash table記錄這個整數出現的次數
當該整數出現第一次counter加1
counter==k的時候
從l開始開始計算滿足條件的subarray有幾個
counter>k的時候
移動l直到counter==k
golang code :
func subarraysWithKDistinct(nums []int, k int) int {
cnt := 0
ans := 0
rec := make(map[int]int)
l, r, n := 0, 0, len(nums)
for r < n {
rec[nums[r]]++
if rec[nums[r]] == 1 {
cnt++
}
for cnt > k {
rec[nums[l]]
作者: wwndbk (黑人問號)   2024-03-30 13:41:00
大師
作者: SecondRun (雨夜琴聲)   2024-03-30 14:07:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com