数组中出现次数超过一半的数字
关键词:摩尔投票法(打擂台)
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
1 |
|
解法
解法一:
思路:
- 该数字的数量比其他所有数字数量总和多
算法流程:
- 假设第一个数字是目标值,给它计一票;
- 遍历数组,遇到相同的元素则计票,否则减少票数;
- 当票数减少为零时,令下一个数字为暂定目标值。
代码:
1 |
|
知识点
- 摩尔投票法(打擂台)
关键词:摩尔投票法(打擂台)
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
1 |
|
思路:
算法流程:
代码:
1 |
|