avatar
Guest Editor Needed# EB23 - 劳工卡
O*2
1
给你一个数列,不知道长度,一个一个给,其中一个数出现次数超过半数
(如果数列长度2N+1,这个数出现不少于N+1,但是N事先未知)
怎么样找出这个数?
似乎听说过这个题,有提示吗?多谢
avatar
c*g
2
需要2-3个guest editors for a special issue of a Journal. Backgroud需要是和
sensor 还有nanomaterial有关系的。 如果有兴趣, 请站内。谢谢。
avatar
r*y
3
if the range of the numbers known, then hash can be used ?

【在 O*2 的大作中提到】
: 给你一个数列,不知道长度,一个一个给,其中一个数出现次数超过半数
: (如果数列长度2N+1,这个数出现不少于N+1,但是N事先未知)
: 怎么样找出这个数?
: 似乎听说过这个题,有提示吗?多谢

avatar
g*s
4
已发信给您
请查阅!

【在 c***g 的大作中提到】
: 需要2-3个guest editors for a special issue of a Journal. Backgroud需要是和
: sensor 还有nanomaterial有关系的。 如果有兴趣, 请站内。谢谢。

avatar
g*y
5
似乎只能把所有数都用hashtable保存下来吧。
不管你现在看见些什么数,到最后,每一个出现过的数,甚至还没出现的数,都有可能
是正确答案。
avatar
T*7
6
正在给你发信,请查收,谢谢。

需要2-3个guest editors for a special issue of a Journal. Backgroud需要是和
sensor 还有nanomaterial有关系的。 如果有兴趣, 请站内。谢谢。

【在 c***g 的大作中提到】
: 需要2-3个guest editors for a special issue of a Journal. Backgroud需要是和
: sensor 还有nanomaterial有关系的。 如果有兴趣, 请站内。谢谢。

avatar
s*n
7
majority voting algorithm
int MajorityVoting(int arr[], int n)
{
int majority;
int count = 0;
for (int i = 0; i < n; i++)
{
if (count > 0)
{
if (majority == arr[i])
count++;
else
count--;
}
else
{
count ++;
majority = arr[i];
}
}
return majority;
}
hint:思路类似一个array所有的数even只有一个是odd.

【在 O*2 的大作中提到】
: 给你一个数列,不知道长度,一个一个给,其中一个数出现次数超过半数
: (如果数列长度2N+1,这个数出现不少于N+1,但是N事先未知)
: 怎么样找出这个数?
: 似乎听说过这个题,有提示吗?多谢

avatar
C*r
8
已发信给您,请查收。非常感谢!

【在 c***g 的大作中提到】
: 需要2-3个guest editors for a special issue of a Journal. Backgroud需要是和
: sensor 还有nanomaterial有关系的。 如果有兴趣, 请站内。谢谢。

avatar
g*y
9


【在 s*****n 的大作中提到】
: majority voting algorithm
: int MajorityVoting(int arr[], int n)
: {
: int majority;
: int count = 0;
: for (int i = 0; i < n; i++)
: {
: if (count > 0)
: {
: if (majority == arr[i])

avatar
g*y
10
hint:思路类似一个array所有的数even只有一个是odd.
那是什么题?
avatar
s*y
11
我就记得是UT Austin发明的,死活想不起名字了,多谢提醒
这里还有demo
http://www.cs.utexas.edu/~moore/best-ideas/mjrty/index.html

【在 s*****n 的大作中提到】
: majority voting algorithm
: int MajorityVoting(int arr[], int n)
: {
: int majority;
: int count = 0;
: for (int i = 0; i < n; i++)
: {
: if (count > 0)
: {
: if (majority == arr[i])

avatar
g*e
12
一个array所有数都出现偶数次,只有一个出现奇数次,要找到这个数。XOR可解。
当然如果这个数是0,那就只能vote了

【在 g**********y 的大作中提到】
: hint:思路类似一个array所有的数even只有一个是odd.
: 那是什么题?

avatar
g*y
13
哦,我还奇怪,要是只有一个奇数,把它找出来,还需要什么vote呢?

【在 g**e 的大作中提到】
: 一个array所有数都出现偶数次,只有一个出现奇数次,要找到这个数。XOR可解。
: 当然如果这个数是0,那就只能vote了

avatar
d*d
14
如果是0的话,也不用vote,最后xor结果就是0阿.

【在 g**e 的大作中提到】
: 一个array所有数都出现偶数次,只有一个出现奇数次,要找到这个数。XOR可解。
: 当然如果这个数是0,那就只能vote了

avatar
h*n
15
同疑惑

【在 d*******d 的大作中提到】
: 如果是0的话,也不用vote,最后xor结果就是0阿.
avatar
x*2
16
不用hash,线性扫一遍就行了。
每次舍弃2个不同的数,因为那个数超过半数,所以最后剩下的必然是所求

【在 O*2 的大作中提到】
: 给你一个数列,不知道长度,一个一个给,其中一个数出现次数超过半数
: (如果数列长度2N+1,这个数出现不少于N+1,但是N事先未知)
: 怎么样找出这个数?
: 似乎听说过这个题,有提示吗?多谢

avatar
g*e
17
我的理解是你不知道最后结果是0,还是array里根本没有出现奇数次的数字。这个逻辑
严密
的程序应该是能给出判断的

【在 h*********n 的大作中提到】
: 同疑惑
avatar
O*2
18
thx

【在 s*****n 的大作中提到】
: majority voting algorithm
: int MajorityVoting(int arr[], int n)
: {
: int majority;
: int count = 0;
: for (int i = 0; i < n; i++)
: {
: if (count > 0)
: {
: if (majority == arr[i])

avatar
O*2
19
thx

【在 x******2 的大作中提到】
: 不用hash,线性扫一遍就行了。
: 每次舍弃2个不同的数,因为那个数超过半数,所以最后剩下的必然是所求

avatar
O*2
20
如果没有出现奇数次的数,那么总数应该是偶数,如果有的话且xor结果为零,
那么这个数就应该是零

【在 g**e 的大作中提到】
: 我的理解是你不知道最后结果是0,还是array里根本没有出现奇数次的数字。这个逻辑
: 严密
: 的程序应该是能给出判断的

avatar
e*s
21
请问
如果没有任何一个数超过一半,这个算法是不是有可能随便返回一个出现次数很少的数?

【在 s*****n 的大作中提到】
: majority voting algorithm
: int MajorityVoting(int arr[], int n)
: {
: int majority;
: int count = 0;
: for (int i = 0; i < n; i++)
: {
: if (count > 0)
: {
: if (majority == arr[i])

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。