问题描述
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 (将#修改为@)