面试题29 数组中出现次数超过一半的数字

编程之美中的思路。

 

int MoreThanHalf(int A[], int length)
{
	if(A == NULL || length < 1) return 0;
	
	int result = A[0];
	int times = 1;
	for(int i = 1; i < length; ++i)
	{
		if(times == 0){
			result = A[i];
			times = 1;
		}else if(A[i] == result){
			++times;
		}else
			--times;	
	}
	return result;
	
}

  

posted @ 2013-09-15 20:34  冰点猎手  阅读(194)  评论(0编辑  收藏  举报