我是靠谱客的博主 标致八宝粥,这篇文章主要介绍剑指Offer Java 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组,现在分享给大家,希望可以做个参考。
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
Java题解
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27public class Solution { public int MoreThanHalfNum_Solution(int [] array) { if(array == null || array.length == 0){ return 0; } int count = 0; int num = array[0]; for(int n : array){ if(n == num){ count++; }else{ count--; if(count == 0){ count = 1; num = n; } } } int time = 0; for(int n : array){ if(n == num){ time++; } } return time > (array.length / 2) ? num : 0; } }
最后
以上就是标致八宝粥最近收集整理的关于剑指Offer Java 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组的全部内容,更多相关剑指Offer内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复