搜狐畅游C++最后一题第二大

咋做都是80% 有坑?#搜狐#
全部评论
OJ直接写了个冒泡,冒2次 0.0
点赞 回复 分享
发布于 2017-09-17 11:52
原因找到了,跟输入方式有关,用到第一个数字以for循环输入就是80%,用while就是100%
点赞 回复 分享
发布于 2017-09-17 12:02
直接 sort就过了。。。不过最后没用,用了个堆
点赞 回复 分享
发布于 2017-09-17 11:34
我sort,没过啊.
点赞 回复 分享
发布于 2017-09-17 11:39
元素都一样的,第二大是哪一个?
点赞 回复 分享
发布于 2017-09-17 11:41
sort一遍就过。。。
点赞 回复 分享
发布于 2017-09-17 11:42
有坑,最大值重复的情况没有考虑
点赞 回复 分享
发布于 2017-09-17 11:47
冒个泡就过去了- -
点赞 回复 分享
发布于 2017-09-17 11:49
我也是,感觉哪有坑
点赞 回复 分享
发布于 2017-09-17 11:51
...我拿Python写的,一遍过。然而这是C++,尴尬。
点赞 回复 分享
发布于 2017-09-17 11:54
sort一遍过
点赞 回复 分享
发布于 2017-09-17 11:56
#include "iostream" #include "vector" #include "algorithm" #include "unordered_set" #include "set" #include "unordered_map" #include "cstdio" #include "queue" #include "algorithm" #include "climits" #include "map" #include "stack" #include "cstring" #include "climits" using namespace std; #define ll long long #define mod 1000000007 void swap(int &a,int &b){     int c=a;     a=b;     b=c; } int main(){     int n;     cin>>n;     vector<int> a(n);     for(int i=0;i<n;i++)cin>>a[i];     int x=a[0],y=a[1];     if(x<y)swap(x,y);     for(int i=2;i<n;i++){         if(a[i]<=y)continue;         y=a[i];         if(x<y)swap(x,y);     }     cout<<y<<endl;     return 0; }
点赞 回复 分享
发布于 2017-09-17 12:03
用了个set,直接就过了
点赞 回复 分享
发布于 2017-09-17 12:09
#include <iostream> #include <climits> using namespace std; int main(int argc, char const *argv[]) {     int n, a;     while (cin >> n) {         int m1 = INT_MIN, m2 = INT_MIN;         for (int i = 0;i < n; ++i) {             cin >> a;             if (a > m1) {                 m2 = m1;                 m1 = a;             } else if (a < m1 && a > m2) {                 m2 = a;             }         }         cout << m2 << endl;     }     return 0; }
点赞 回复 分享
发布于 2017-09-17 12:13
5分钟写了个冒泡,a了
点赞 回复 分享
发布于 2017-09-17 12:19
想问下畅游这是最后一场笔试了吗?之后是不是报不了了?
点赞 回复 分享
发布于 2017-09-17 12:22
1 2 2 3 3结果是2,这就是最后一个点
点赞 回复 分享
发布于 2017-09-17 12:31
#include <iostream> #include <algorithm> using namespace std; int main() {     int n;     scanf("%d",&n);     int *p=(int *)calloc(n,sizeof(int));     for (int i = 0; i < n; i++)     {         cin>>p[i];     }     sort(p,p+n);     cout<<p[n-2];     return 0; }
点赞 回复 分享
发布于 2017-09-17 13:39
你直接两个变量求第二大也可以 排序也可以啊 堆也可以啊,优先队列啊,之类的,很多方法都可以过
点赞 回复 分享
发布于 2017-09-17 14:16
#include<vector> #include<iterator> #include<iostream> #include"stdlib.h" using namespace std; int main() {  vector<int> vect;  vector<int>::iterator pos1,pos2;  int n;  cin>>n;  int num[100];    for(int i=0;i<n;i++){      cin >> num[i];  if (num[i]!='\0')  {   vect.push_back(num[i]);  }  }  for (vector<int>::size_type index = 0 ; index <= vect.size();index++)  {   pos1 = pos2 = vect.begin();           ++pos2;                while (pos2 != vect.end())           {    if ((*pos2) < (*pos1))    {     vector<int>::size_type tmp = *pos2;     *pos2 = *pos1;     *pos1 = tmp;    }    ++pos1;    ++pos2;   }  }  for (vector<int>::iterator iter = vect.begin();iter != vect.end();++iter)  {   cout << *iter << " ";   } system("pause"); return 0;    }
点赞 回复 分享
发布于 2017-09-17 14:48

相关推荐

风流倜傥从哥:这个项目确实太简单了有点,做点大项目。。。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务