多数元素求解方法综述与高阶面试题.pdfVIP

  • 1
  • 0
  • 约1.43千字
  • 约 2页
  • 2026-08-01 发布于北京
  • 举报

多数元素求解方法综述与高阶面试题.pdf

多数元素

A.Hash+随机

1.题目信息

对数:大于n/2是多数;

数组长度至少为1;

问题一定有解:一定有一个数是多数的,即出现的次数大于n/2;

2.算法思路

Hash表求解:对nums的每个元素x进行判断

1)如果x在hash表中的keyset里,增加x的value一个单位;

2)如果x不在,新增一个key=x,value=1;

遍历Hash表中的key值,找到value最大的key返回;

随机算法:

1)如果一次问题求解的概率为常数,那么重复执行这个求解过程“常数次”可以使得问题求解成功

的概率近乎为1。

B消元法

1.算法思路

在nums中多数元素出现的次数“比”其他元素出现的次数总和还要多。

破题点:将多数元素和非多数元素一比一的祛除,最后数组中剩下的一定是多数元素。

算法思路:遍历nums,依次消除两个不同的元素,直至剩下的元素都相同,那么这个元素为多数

元素。

初始化指针i和指针j

1)指针i指向nums中第一个非空元素;

2)指针j指向j后第一个非空元素,且满足该元素在i后;

$nums[i]nums[j]$:置空操作;

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档