算法竞赛
🧠leetcode难题总结
00 分钟
2023-4-16
2023-11-23
type
status
date
slug
summary
tags
category
icon
password
Email

1157. 子数组中占绝大多数的元素(困难)

利用随机数投票+ 二分查找的方法。
  • 绝对众数:N个数字中出现次数最多的数字称为众数,如果这个众数的出现次数超过了区间的长度一半,即>N,则称这个众数为绝对众数。
  • 记录数组中每个元素出现的位置下标,通过unordered_map<int,vector<int>> 来构造,则这样的话mp[num] 记录的就是 num 这个数字在原数组中按照递增顺序出现的下标,然后我们就能获得数字出现的次数等等信息。
  • mt19937 产生高性能随机数,在头文件 <random> 中,其中利用 random_device{}() 来作为构造函数,需要产生随机数字的时候,直接调用其 () 重载即可;如果需要产生某一个范围的随机数,则利用 uniform_int_distribution 来生成给定范围内的随机数。
 
 

评论
  • Twikoo
  • Valine