LeetCode 992. K 个不同整数的子数组(双指针)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 992. K 个不同整数的子数组(双指针)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給定一個正整數數組 A,如果 A 的某個子數組中不同整數的個數恰好為 K,則稱 A 的這個連續、不一定獨立的子數組為好子數組。
(例如,[1,2,3,1,2] 中有 3 個不同的整數:1,2,以及 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 <= A.length <= 20000 1 <= A[i] <= A.length 1 <= K <= A.length來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/subarrays-with-k-different-integers
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 參考官方思路
- 每次遍歷一個右端點 r,以該右端點為結束的滿足題意的子數組有多少個
- 左端點有兩個極限位置 l1, l2,[l1, r]剛好有 k 個不同數字,[l2, r] 剛好有 k-1 個不同數字
- 累加 滿足條件的l2 - l1
40 ms 32.5 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 992. K 个不同整数的子数组(双指针)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1130. 叶值的最小
- 下一篇: 天池 在线编程 旅行计划(暴力回溯)