Windows中的不同数字

问题描述

这是我的代码,但是没有给出正确的输出

int main() {
    vector<int> Solution::dNums(vector<int> &A,int B) {
    vector<int> v;

    if(B>A.size()) {
        return v;
    }
    int n=A.size();

    for(int i=0;i<min(i+B,n);i++) {
        int smallest=INT_MAX,largest=INT_MIN;
        unordered_map<int,int> mp;

        for(int j=i;j<(i+B);j++) {
            mp[A[j]]++;
            smallest = min(smallest,A[j]);
            largest = max(largest,A[j]);
        }
        int c=0;

        for(int j=smallest;j<=largest;j++) {
            if(mp[j]>0) {
                c++;
            }
        }
        v.push_back(c);
    }
    return v;
}

对于测试用例:

A:[1,2,1,3,4,3]

B:3

代码给出:2 3 3 2 3 2

实际输出为:2 3 3 2

说明::将为您提供N个整数数组A1,A2,...,AN和一个整数B。在所有大小为B的窗口中返回不同数字的计数。 / p>

形式上,返回大小为N-B + 1的数组,其中该数组中的第i个元素包含序列Ai,Ai + 1,...,Ai + B-1中不同数量的元素。

注意:如果B> N,则返回一个空数组。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)