| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1252 人关注过本帖
标题:[求助]这个功能该如何实现,给点思路
只看楼主 加入收藏
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
 问题点数:0 回复次数:11 
[求助]这个功能该如何实现,给点思路
编写一个函数Int MajorityElement(int array[],int n);
该函数返回数组array中的多数元素。多数元素是指在占绝对多数(至少51%)的一个值。如果多数元素不存在,那么返回常量NoMajorityElement,该函数必须满足下面的条件:
1. 必须以O(N)时间运行。
2. 必须使用O(1)的附加空间。换句话说,可用个别的临时变量,而不可以使用任何的临时数组。并且不能使用递归解决,这是因为随着递归层数加深,会需要空间来存储栈帧。
3. 不能改变数组中的任何元素的值。

要是可以给一个临时数组,这个问题就好办了,关键是只能用到O(1)的附加空间。
大家看能不能给点思路

搜索更多相关主题的帖子: 思路 元素 array 函数 
2007-10-11 22:28
cobby
Rank: 1
等 级:新手上路
威 望:1
帖 子:565
专家分:0
注 册:2007-7-11
收藏
得分:0 
好像要求很苛刻的样子,问一下,参数n干嘛用的?一起想下呵

努力成为菜鸟!
2007-10-12 09:12
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
我晕,你返一个int型,也就定义一变量,然后返回,而这个变量什么占多数元素呀,不懂。没看明白,自己好逐磨吧
2007-10-12 10:24
cobby
Rank: 1
等 级:新手上路
威 望:1
帖 子:565
专家分:0
注 册:2007-7-11
收藏
得分:0 
以下是引用missiyou在2007-10-12 10:24:09的发言:
我晕,你返一个int型,也就定义一变量,然后返回,而这个变量什么占多数元素呀,不懂。没看明白,自己好逐磨吧

楼主的意思是在数组中出现最频繁的那个值呵


努力成为菜鸟!
2007-10-12 10:30
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
以下是引用cobby在2007-10-12 9:12:59的发言:
好像要求很苛刻的样子,问一下,参数n干嘛用的?一起想下呵

n代表数组array的元素个数


英者自知,雄者自胜
2007-10-12 11:14
longerhe
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2006-10-10
收藏
得分:0 
遍历数组,把出现次数大于n/2的那个输出,再一次遍历数组,但这时不用访问跟之前相等的数...
2007-10-12 11:30
cobby
Rank: 1
等 级:新手上路
威 望:1
帖 子:565
专家分:0
注 册:2007-7-11
收藏
得分:0 
楼上的方法就不是线性时间给出结果了。

我有一个赖皮的方法,楼主要求用O(1)的空间,我是不是可以理解为一个字符串的空间?这样的话我就可以编一个字符串,通过字符串编码获得各元素出现次数的信息了。

努力成为菜鸟!
2007-10-12 13:24
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 

我想先把数组排序,字符一样的在一起。然后在一个用二个变量,比较;直到选择最大的

2007-10-12 14:02
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 

楼上有能在线性时间内完成数组排序的算法吗?


英者自知,雄者自胜
2007-10-12 15:23
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
收藏
得分:0 

这个O(1)太恶心了


[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2007-10-12 15:26
快速回复:[求助]这个功能该如何实现,给点思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016023 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved