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

    // 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;
    
    }
  • 相关阅读:
    java 标准异常
    java 重新抛出异常
    java 异常链
    java 轨迹栈
    mysql死锁-非主键索引更新引起的死锁
    数据库事务
    JMS学习笔记(一)
    log4j中将SocketAppender将日志内容发送到远程服务器
    Kubernetes之kubectl常用命令
    java代理与动态代理的学习
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6497593.html
Copyright © 2011-2022 走看看