首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

分享一个标题

2012-10-13 
分享一个题目已知一个有n个元素的数组 arr[1....n] 。 ( 1 n 100 w )如果在数组的某个区间[a,b](

分享一个题目
已知一个有n个元素的数组 arr[1....n] 。 ( 1 < = n < = 100 w ) 
如果在数组的某个区间[a,b]( 也就是 arr[a]...arr[b] )中有一个数出现的次数超过这个区间[a,b]大小的50%, 
那么称这个数叫fuck数。
对于M ( 1 < = M < = 100 w )次询问,每次询问输入两个数为A,B,要求输出数组arr的子区间arr[A...B]中的fuck数,如果不存在输出none。
 
 



[解决办法]
是否可以直接抽象成,arr[A...B]中,出现次数超过一半的数?

如果可以,那只要遍历一次从arr[A] 到 arr[B],时间复杂度为O(n)

方法参考:http://blog.yidooo.net/archives/3426.html
[解决办法]

探讨

搞定了,随机选取100次即可,误差为(1/2)^100 ,可以忽略不计。

散分

热点排行