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