vipkid笔试

第二次全ac,但是看了大家的讨论,感觉自己的代码有bug,第一题没有去重,第二题暂时没发现,,,,,#VIPKID#
全部评论
没去重也过了,tql
点赞 回复 分享
发布于 2019-09-03 20:53
第一题统计和为0的个数,没有去重 #include <iostream> #include <vector> #include <set> #include <map> #include <bitset> #include <iomanip> #include <algorithm> #include <functional> #include <queue> using namespace std; int main() { vector<int>a; int tmp; char ch; while ((cin >> tmp).get(ch)) { a.push_back(tmp); if (ch == '\n') break; } int n = a.size(); vector<int>b(n, 0); int cnt = 0; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (b[i] == 0 && b[j] == 0) { if (a[i] + a[j] == 0) { cnt++; b[i] = 1; b[j] = 1; } } } } cout << cnt << endl; system("pause"); return 0; }
点赞 回复 分享
发布于 2019-09-03 21:35
第二题:一个数组求每k个的均值 #include <iostream> #include <vector> #include <set> #include <map> #include <bitset> #include <iomanip> #include <algorithm> #include <functional> #include <queue> using namespace std; vector<int>a; int main() { int tmp; char ch; while ((cin >> tmp).get(ch)) { a.push_back(tmp); if (ch == '\n') break; } int k; cin >> k; int n = a.size(); double sum = 0.0; vector<double>b; for (int i = 0; i <= n-k; i++) { for (int j = i; j <= i+k-1 && j < n; j++) { sum += a[j]; } sum /= k; b.push_back(sum); sum = 0.0; } for (int i = 0; i < b.size(); i++) { if(i == 0) cout << setiosflags(ios::fixed) << setprecision(2) << b[i]; else cout << " " << setiosflags(ios::fixed) << setprecision(2) << b[i]; } cout << endl; system("pause"); return 0; }
点赞 回复 分享
发布于 2019-09-03 21:36
你这代码真牛皮
点赞 回复 分享
发布于 2019-09-03 21:56
弱弱的说一句 我也没去重,看到大家的讨论一脸懵逼😂
点赞 回复 分享
发布于 2019-09-03 21:59
#include<iostream> #include<vector> #include<set> using namespace std; int GetNum(vector<int>& vec) {     int dsize = vec.size();     for(int i = 0;i<dsize;i++)     {         if(vec[i] < 0)         {             vec[i] = 0 - vec[i];//abs(vec[i]);         }     }     set<int> save;     set<int>::iterator iter;     int num = 0;     for(int i = 0;i<dsize;i++)     {         if (save.find(vec[i]) == save.end())//vec[i]第一次出现         {                 save.insert(vec[i]);         }         else         {                 iter = save.find(vec[i]);                 save.erase(iter);                 num++;          }     }     return num; } int main() {     vector<int> vec;     int num;     while (cin >> num)     {             vec.push_back(num);         if (cin.get() == '\n')         {             break;         }     }     cout<<GetNum(vec)<<endl;     return 0; } 这个算有去重吧,考虑到-1 1 -1 1 -1 1 这样3对儿的情况
点赞 回复 分享
发布于 2019-09-03 23:47

相关推荐

重生2012之我是java程序员:换个稍微正式点的照片吧
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务