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; } }#拼多多笔试##笔试题目##拼多多#