zoukankan      html  css  js  c++  java
  • LC 992. Subarrays with K Different Integers

    Given an array A of positive integers, call a (contiguous, not necessarily distinct) subarray of A good if the number of different integers in that subarray is exactly K.

    (For example, [1,2,3,1,2] has 3 different integers: 12, and 3.)

    Return the number of good subarrays of A.

    Example 1:

    Input: A = [1,2,1,2,3], K = 2
    Output: 7
    Explanation: Subarrays formed with exactly 2 different integers: [1,2], [2,1], [1,2], [2,3], [1,2,1], [2,1,2], [1,2,1,2].
    

    Example 2:

    Input: A = [1,2,1,3,4], K = 3
    Output: 3
    Explanation: Subarrays formed with exactly 3 different integers: [1,2,1,3], [2,1,3], [1,3,4].
    

    Note:

    1. 1 <= A.length <= 20000
    2. 1 <= A[i] <= A.length
    3. 1 <= K <= A.length
    Runtime: 128 ms, faster than 100.00% of C++ online submissions for Subarrays with K Different Integers.
    Memory Usage: 25 MB, less than 100.00% of C++ online submissions for Subarrays with K Different Integers.
    class Solution {
    public:
      int subarraysWithKDistinct(vector<int>& A, int K) {
        return atMostK(A, K) - atMostK(A,K-1);
      }
      int atMostK(vector<int>& A, int K) {
        int i = 0,res = 0;
        unordered_map<int,int> mp;
        for(int j=0; j<A.size(); j++) {
          if(!mp[A[j]]++) K--;
          while(K<0){
            if(!--mp[A[i]]) K++;
            i++;
          }   
          res += j - i + 1;
        }   
        return res;
      }
    };
  • 相关阅读:
    根据当前日期转目的国地区时间戳
    时间戳转换作用域问题
    字符串拼接问题
    input全选和取消全选
    循环遍历渲染模块
    jQuery实现获取选中复选框的值
    React组件
    underscore.js依赖库函数分析二(查找)
    underscore.js依赖库函数分析一(遍历)
    React入门
  • 原文地址:https://www.cnblogs.com/ethanhong/p/10360555.html
Copyright © 2011-2022 走看看