从一千万条短信中找出重复次数最多的前10条
题目:
有1千万条短信,有重复,以文本文件的形式保存,一行一条。请用5分钟时间,找出重复出现最多的前10条。
struct TNode
{
BYTE* pText;
//直接指向文件映射的内存地址
DWORD dwCount;
//计算器,记录此节点的相同短信数
TNode* ChildNodes[256];
//子节点数据,由于一个字母的ASCII值不可能超过256,所以子节点也不可能超过256
TNode()
{
//初始化成员
}
~TNode()
{
//释放资源
}
};
//int nIndex 是字母下标
void CreateChildNode(TNode* pNode, const BYTE* pText, int nIndex)
{
if (pNode->ChildNodes[pText[nIndex]] == NULL)
{
//如果不存在此子节点,就创建.TNode构造函数//应该有初始化代码
//为了处理方便,这里也可以在创建的同时把此节点加到一个数组中
pNode->ChildNodes[pText[nIndex]] = new TNode;
}
if (pText[nIndex + 1] == '\0')
{
//此短信已完成,计数器加1,并保存此短信内容
pNode->ChildNodes[pText[nIndex]]->dwCount++;
pNode->ChildNodes[pText[nIndex]]->pText = pText;
}
else
{
//if(pText[nIndex]!='\0')如果还未结束,就创建下一级节点
CreateNode(pNode->ChildNodes[pText[nIndex]], pText, nIndex + 1);
}
}
//创建根节点,pTexts是短信数组,dwCount是短信数量//1千万
void CreateRootNode(const BYTE** pTexts, DWORD dwCount)
{
TNode RootNode;
for (DWORD dwIndex = 0; dwIndex < dwCount, dwIndex++)
{
CreateNode(&RootNode, pTexts[dwIndex], 0);
}
//所有结点按dwCount的值进行排序
//取前10个节点,显示结果
}
从一千万条短信中找出重复次数最多的前10条相关推荐
- .有一千万条短信,有重复,以文本文件的形式保 请用5 分钟时间,找出重复出现最多的前10 条。
此为腾讯面试题,木有具体答案... 1.有一千万条短信,有重复,以文本文件的形式保存,一行一条,有重复. 请用5 分钟时间,找出重复出现最多的前10 条. 答:1000W条短信,每条最多140个字符 ...
- 从亿级数据量的url中找出出现次数最多的前十个url
流程: mapToPair + reduceByKey:计算每个url的出现次数: mapToPair + sortByKey:反转PairRDD,按照降序的方式对url的出现次数进行排序: take ...
- 1亿数字中找出重复次数TopN的问题
/*** @Date 2020/7/3* @param dataSize 数据量的大小* @param randomNumRange 产生随机数的范围* @param topN 找出重复次数前N的.* ...
- 从1亿个ip中找出访问次数最多的IP
看了教你如何迅速秒杀掉:99%的海量数据处理面试题一文,的确是挺有收获的,特别是对这种海量数据的处理,的确是有了一个挺清晰的思路,特别感谢原文博主July. 处理海量数据问题存在的原因就在于1)数据量 ...
- python-两种方法实现:从字符串中找出 出现次数最多的 字母和 对应出现的个数
-----------------------方法一:使用字典--------------------------- s='aabcdefaabbccdeffffffffffff'c={}for i ...
- 10亿个QQ号码,找出重复次数最多的那一个
hash取模,将号码分散在多个小文件里存储,然后分别对文件内号码排序,统计出现次数最多的那一个,最后对所有最多值取最大的那一个,为所求.
- PTA在一大堆数据中找出重复的是一件经常要做的事情。现在,我们要处理许多整数,在这些整数中,可能存在重复的数据。
在一大堆数据中找出重复的是一件经常要做的事情.现在,我们要处理许多整数,在这些整数中,可能存在重复的数据. 你要写一个程序来做这件事情,读入数据,检查是否有重复的数据.如果有,输出"YES& ...
- python查找数列中重复数字_在数组中找出重复的数字(异或法)
购买本课程后,可以加51CTO学院李宁老师官方交流群:550369460注意,该群只允许购买李宁老师课程的学员进行技术交流,加群时需要提供在51CTO购买李宁老师课程的订单编号(任何一个课程的订单编号 ...
- 【宫水三叶的刷题日记】961. 在长度 2N 的数组中找出重复 N 次的元素
题目描述 这是 LeetCode 上的 961. 在长度 2N 的数组中找出重复 N 次的元素 ,难度为 简单. Tag : 「模拟」.「计数」.「构造」.「哈希表」 给你一个整数数组 nums ,该 ...
最新文章
- [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...
- “AI就是统计学”?阿里AI负责人金榕逐条驳诺奖得主萨金特
- linux rm 删除所有文件,linux无需rm就可快速删除大量文件
- 快速排序pascal程序
- php访问mysql函数吗,PHP访问MySQL数据库函数简介
- python全栈自动化测试工程师第11期柠檬班vip_因为Python,班主任最近都开始化妆了!...
- Sentinel卫星数据
- 网络安全-渗透测试前置知识
- D365 ERP流程笔记
- JAVA整合无忧代理IP做数据采集的DEMO
- Linux sublime设置中文,Sublime Text 3 设置为Ubuntu 14.04默认编辑器并支持中文
- C# 判断是否是节假日
- STC12C5A60S2A/D转换
- Halcon中关于角度计算和测量拟合的算子详解
- c语言实现求一个矩阵特征值和特征向量
- android图片:多选相册的实现
- 《C++程序设计》第十章总结
- 行业标准 | 证券期货业信息系统运维管理规范 JR/T 0099—2012
- matlab-粒子群源码优化模糊隶属度函数值
- 华为手机如何升级鸿蒙系统_华为鸿蒙系统怎么升级?升级鸿蒙系统步骤[多图]...