91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

leetcode如何返回K個不同整數的子數組

發布時間:2021-12-16 09:42:50 來源:億速云 閱讀:107 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關leetcode如何返回K個不同整數的子數組,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

給定一個正整數數組 A,如果 A 的某個子數組中不同整數的個數恰好為 K,則稱 A 的這個連續、不一定獨立的子數組為好子數組

(例如,[1,2,3,1,2] 中有 3 個不同的整數:12,以及 3。)

返回 A 中好子數組的數目。

示例 1:

輸出:A = [1,2,1,2,3], K = 2
輸入:7
解釋:恰好由 2 個不同整數組成的子數組:[1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2].

示例 2:

輸入:A = [1,2,1,3,4], K = 3
輸出:3
解釋:恰好由 3 個不同整數組成的子數組:[1,2,1,3], [2,1,3], [1,3,4].

提示:

  1. 1 <= A.length <= 20000

  2. 1 <= A[i] <= A.length

  3. 1 <= K <= A.length

解題思路:

1,這是一個滑動窗口類題目,設置左右指針start,end

2,窗口內部問題可以拆分出兩個子問題

A,K種不同值組成的子數組

B,A所得子數組中,移動左指針仍然滿足題目要求的子數組

3,定義兩個左指針start,start2

A,移動start和end,直到k>K,停止

B,移動start2,直到 k2<K停止

C,A[start:end],A[start+1:end],...,A[start2-1:end]都滿足條件

D,個數為start2-start

func subarraysWithKDistinct(A []int, K int) int {    start:=0    start2:=0    m:=make(map[int]int)    m2:=make(map[int]int)    k:=0    k2:=0    sum:=0    for end:=0;end<len(A);end++{        k,start=startEnd(m,A,k,K,start,end,func(k int,K int)bool{ return k>K})         k2,start2=startEnd(m2,A,k2,K,start2,end,func(k int,K int)bool{ return k>=K})        fmt.Println(start,start2,end,k,k2)        sum+=start2-start    }    return sum}
func startEnd(m map[int]int,A []int, k,K,start,end int,compare func(a,b int)bool)(int,int){    if  m[A[end]]==0{            k++        }         m[A[end]]++    for compare(k,K){            m[A[start]]--            if m[A[start]]==0{                k--            }            start++        }    return k,start}

關于“leetcode如何返回K個不同整數的子數組”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

深泽县| 平山县| 鱼台县| 厦门市| 南昌市| 波密县| 于都县| 盈江县| 东乌| 疏勒县| 长海县| 辽阳县| 景谷| 昌宁县| 合川市| 汉源县| 芷江| 揭西县| 延津县| 休宁县| 淳化县| 漳浦县| 子洲县| 和龙市| 亚东县| 明光市| 岑巩县| 宝清县| 上杭县| 云浮市| 石棉县| 五家渠市| 鄱阳县| 红安县| 新龙县| 霍城县| 区。| 榆林市| 汶川县| 十堰市| 辰溪县|