数组中出现次数超过一半的数字
// 5.4.数组中出现次数超过一半的数字
#include "stdafx.h"
using namespace std;
#include <string>
#include <vector>
#include <map>
class Solution
{
public:
//建立哈希表法//时间O(n),空间O(n/2)
int find(vector<int> vec)
{
int iRet=-1;
map <int,int> hash;
for (int i = 0; i < vec.size(); i++)
{
hash[vec[i]]++;
// hash表如果是相同的 次数会自动+1
if (hash[vec[i]] > (vec.size() / 2))
{
iRet= vec[i];
}
}
return iRet;
}
};
int main()
{
vector<int> aa = { 1, 2, 3, 4, 5 };
vector<int> bb = { 2, 3, 4, 5, 1 };
vector<int>dd = { 4, 5, 1, 2, 3 };
vector<int>cc = { 3, 3, 5, 3, 2 };
Solution sou;
sou.find(cc);
}
天天向上
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步