4.10 拼多多笔试第一题
第一道题我自测怎么都能通过,可是提交只有20%,求个大佬帮我看看,第一次笔试,真的感觉自己好菜
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int color;
vector<int> arr;
set<int> set;
while(n--) {
cin >> color;
arr.emplace_back(color);
if(set.count(color)==0) set.insert(color);
}
// 处理数据
vector<vector<int>> res;
for(auto i = set.begin(); i != set.end(); i++){
int interval = 0;
int temp = 0;
int count = 0;
int error = 0;
int pre = 0;
for(int j = 0; j < arr.size(); j++) {
if(arr[j] == *i) {
count++;
// 说明是第一个
if(count == 1) {
pre = j;
}
else if (count == 2) {
interval = j - pre;
}
else {
if(j - pre != interval) {
error = 1;
break;
}
pre = j;
}
}
}
if(error == 0) {
vector<int> temp1 = {*i, interval};
res.emplace_back(temp1);
}
}
cout << res.size()<<endl;
sort(res.begin(), res.end(),[](const vector<int>& a,vector<int> &b){
return a[0] < b[0];
});
for(auto a : res) {
for(auto b : a) {
cout << b << ' ';
}
cout << endl;
}
} #拼多多笔试##笔试题目##拼多多#