牛客微信红包

18

牛客微信红包

牛客微信红包算法实现代码如下:

```pythondef find_majority(data):

count =0 majority = None for num in data:

if count ==0:

majority = num count =1 elif num == majority:

count +=1 else:

count -=1 return majoritydef main():

data = [1,2,3,4,4,4,4,5,6,7,4,4,4,8,9,4,10,4,4]

result = find_majority(data)

print("The majority element is:", result)

if __name__ == "__main__":

main()

```

该算法用到的是摩尔投票算法,其基本思路是,遍历数组时维护一个候选众数,初始时将第一个数字作为候选众数,遇到相同的数字则将计数器加1,否则减1。当计数器为0时,重新选取新的候选众数。最终,选出的候选众数即为该红包金额。

算法的时间复杂度为O(n),其中n为红包总数。

解释:

1. 定义一个计数器count和一个候选众数majority,并将count初始化为02. 遍历红包金额数组,对于每个数字num:

- 如果count为0,将num选为候选众数,并将count加1 - 如果num与候选众数majority相同,将count加1 - 如果num与候选众数majority不同,将count减13. 最终选取的候选众数majority即为该红包金额将题目给定的红包金额数组赋值给data,调用find_majority函数找到该红包金额,并输出结果。

运行结果如下所示:

```

The majority element is:4```

因此,小明在查看领取红包记录时,发现的金额出现次数超过了红包总数的一半,且该金额为4元。

红包

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

上一篇 微信发放红包接口(java)

下一篇 2021微信红包封面免费领取最新攻略 春节免费微信红包封面序列号大全