名企笔试:腾讯2016招聘笔试(微信红包)

12

名企笔试:腾讯2016招聘笔试(微信红包)

腾讯2016招聘笔试题目要求找到一个红包金额出现次数超过了红包总数的一半。这个问题可以通过摩尔投票算法来解决。

摩尔投票算法的基本思想是:维护一个候选人和一个计数器,遍历数组,如果当前元素等于候选人,则计数器加一,否则计数器减一。当计数器为0时,更新候选人为当前元素。最终得到的候选人就是出现次数超过一半的红包金额。

具体算法如下:

1. 初始化候选人candidate为红包数组的第一个元素,计数器count为1。

2.从第二个元素开始遍历红包数组:

- 如果当前元素等于候选人candidate,则计数器count加一。

- 如果当前元素不等于候选人candidate,则计数器count减一。

- 如果计数器count变为0,则更新候选人candidate为当前元素,计数器count重置为1。

3. 最终得到的候选人candidate就是出现次数超过一半的红包金额。

通过这个算法,可以在O(n)的时间复杂度内找到出现次数超过一半的红包金额。在实际应用中,可以先对红包金额进行排序,然后再使用摩尔投票算法来解决这个问题。

红包腾讯招聘算法

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 Java:实现模拟微信红包生成,以分为单位算法(附完整源码)

下一篇 高并发资金交易系统设计方案—百亿双十一、微信红包背后的技术架构