思路
定义消消乐操作:从数组中取两个不相等的数进行消除
结论:重复进行“消消乐”操作直到数组只剩下相同的数时,这些数就是众数。
接下来我们看个例子👇
给定一个非空整数数组 nums。若某个数值在数组中的出现次数严格大于 ⌊n/2⌋,其中 n 表示数组长度,则该数值被称为多数元素。请你找出 nums 中的多数元素并返回。
约束条件:
nums 的长度至少为 1,至多为 5×104。nums[i] 都满足 −109≤nums[i]≤109。输入包含一个参数:一个整数列表 nums,表示给定的非空整数数组。
返回一个整数,表示 nums 中的多数元素。
输入
5
输出
5
说明
数组长度为 1,⌊1/2⌋=0。
元素 5 出现了 1 次,严格大于 0,因此 5 是多数元素。
输入
-1 -1 0 -1 -1
输出
-1
说明
数组长度为 5,⌊5/2⌋=2。
统计出现次数:-1 出现了 4 次,0 出现了 1 次。-1 的出现次数严格大于 2,所以多数元素是 -1。
输入
1 2 1 2 1 2 1
输出
1
说明
数组长度为 7,⌊7/2⌋=3。
元素 1 出现了 4 次,元素 2 出现了 3 次。只有 1 的出现次数严格大于 3,因此多数元素为 1。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册