您的位置:首页 > 移动开发 > 微信开发

春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。

2017-03-03 17:11 976 查看
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <numeric>
#include<string>
#include<limits>
#include<stack>

using namespace std;
struct Giftt
{
int money;
int num;
};

class Gift {
public:
int getValue(vector<int> gifts, int n) {

vector<Giftt*> giftVec;

int getMoney = -1;
for (int i = 0; i < gifts.size(); i++)
{
bool getflag = false;

for (int j = 0; j < giftVec.size(); j++)
{

if (gifts[i] == (giftVec[j]->money))
{
getflag == true;
(giftVec[j]->num)++;
if ((giftVec[j]->num)>(n / 2 ))
{
getMoney = j;

}
break;

}
}

if (getMoney != -1)
{
break;
}
if (getflag == false)
{
Giftt *fg = new Giftt;
fg->money = gifts[i];
fg->num=1;
giftVec.push_back(fg);
}
}
if (getMoney == -1) return 0;
else return giftVec[getMoney]->money;
}
};

int main() {

vector<int> gifts = { 1,2,3,2,2 };
Gift gg;
cout << gg.getValue(gifts, 5) << endl;
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐