首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

微软面试题_七

2012-10-30 
微软面试题_7题目:在排序数组中,找出给定数字的出现次数。比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。分析:

微软面试题_7
题目:在排序数组中,找出给定数字的出现次数。比如 [1, 2, 2, 2, 3] 中2的出现次数是3次。
分析:一种思路是找到给定数字出现的起始位置和结束位置,然后用结束位置-起始位置+1就可以得到给定数字的出现次数。

public static int countRenum( int[] arr, int num ) {int begin = -1, end = -1;for( int i = 0; i < arr.length; ++i ) {if( arr[i] != num && begin == -1 ) {continue;}if( begin == -1 ) {begin = i;}if( arr[i] == num && i != arr.length - 1 ) {continue;} else if( arr[i] == num && i == arr.length - 1 ) {end = i;break;} else {/* arr[i] != num */end = i - 1;break;}}return end - begin + 1;}

热点排行