经典指数          
原因
2116
浏览数
0
收藏数
 

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。

     举报   纠错  
 
切换
1 个答案

该题目与测试用例有点不匹配,题目明确说了,数组中有一个数字出现的次数超过了数组长度的一半,设数组长度为n,则该数字至少出现n/2+1次,

也就是说输入必须要满足这样的条件,即数组包含至少重复n/2+1次的数字,

而测试用例却没有保证这样的条件,并且对没有满足这样的条件的输入要求输出为0. 

因此题目应该建议改成:判断正整数数组中是否存在至少重复n/2+1的数字,若存在,输出该数字,若不存在,输出0.

 
切换
撰写答案