如何解决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 举报,一经查实,本站将立刻删除。