由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 大家帮我看看这个题,给个思路
相关主题
报个微软的Offerjob offer letter 上这个bonus到底是什么意思?
有没有人办过 education evaluation ?Verilog问题
有没有对比各个城市收入的网站发个H1B的清单
急问,办H1b需要学历认证吗equivalent degree verification可以让律师做吗?
请教Intel的同学一个bonus的问题这里牛人多,包子请问申请post OPT的问题
[OPENING] Senior Biocompatibility EngineerSenior Software Test Engineer
【A】 Equivalent Rotational StringAA preferred是啥意思?
salesforce on-site有必要去吗?csdn.net equivalent
相关话题的讨论汇总
话题: equivalent话题: cards话题: count话题: whether
进入JobHunting版参与讨论
1 (共1页)
o****i
发帖数: 1706
1
A machine known as, equivalence tester, can determine whether two bank cards
correspond to the same
account by taking two cards at a time as input and outputting whether they
are equivalent. Give an
algorithm which invokes equivalence tester at most O(n lg n) to determine
whether there is a set of
more than n/2 equivalent cards in the given n bank cards.
k******4
发帖数: 94
2
每次取两张卡测试,如果返回true,随便留一张下来,否则都扔掉。
最后肯定就剩下两张或一张,两张测试是false的话,返回no。否则应该还需要再验证
下是否真的大约一半。
上面过程可以保证如果存在样的卡,肯定在留下的卡里面数量一直大于一半,
具体应该可以用数学归纳法证明。
z***m
发帖数: 1602
3
1. 随便一张,可以把集合分成equivalent 和non-equivalent两类
2. 如果equivlent类里有多于n/2个, return true; 否则扔掉equivlent的所有卡,
回到1.
3. 如果卡都扔完了,还没有多于一半的那种卡,就return false
k******4
发帖数: 94
4
如过不幸每次equivalent里面都是空呢?时间复杂度是n^2?

【在 z***m 的大作中提到】
: 1. 随便一张,可以把集合分成equivalent 和non-equivalent两类
: 2. 如果equivlent类里有多于n/2个, return true; 否则扔掉equivlent的所有卡,
: 回到1.
: 3. 如果卡都扔完了,还没有多于一半的那种卡,就return false

h*****u
发帖数: 1484
5
只剩一张如何判断呢?比如1,2,1,2,3和1,2,1,2,1
这题就是lc上的majority element吧,O(n)复杂度
存一个candidate和一个count
for (Card card : cards) {
if (count == 0) {
candidate = card;
count = 1;
} else if (testEquivalent(candidate, card)) {
count++;
} else {
count--;
}
}
return count > 0;

【在 k******4 的大作中提到】
: 每次取两张卡测试,如果返回true,随便留一张下来,否则都扔掉。
: 最后肯定就剩下两张或一张,两张测试是false的话,返回no。否则应该还需要再验证
: 下是否真的大约一半。
: 上面过程可以保证如果存在样的卡,肯定在留下的卡里面数量一直大于一半,
: 具体应该可以用数学归纳法证明。

k******4
发帖数: 94
6
只有一张了,需要测试是否真的大约一半。

【在 h*****u 的大作中提到】
: 只剩一张如何判断呢?比如1,2,1,2,3和1,2,1,2,1
: 这题就是lc上的majority element吧,O(n)复杂度
: 存一个candidate和一个count
: for (Card card : cards) {
: if (count == 0) {
: candidate = card;
: count = 1;
: } else if (testEquivalent(candidate, card)) {
: count++;
: } else {

o****i
发帖数: 1706
7
你这个目测不对,就走一遍的话,前面过去的卡就算扔掉了,后面的candidate不能和
前面的比较,而且这个题的意思,我的理解是如果set是(1,1,2,2,3)的话是可以过得,
你的算法貌似不能过这种情况,因为只有一个candidate。

【在 h*****u 的大作中提到】
: 只剩一张如何判断呢?比如1,2,1,2,3和1,2,1,2,1
: 这题就是lc上的majority element吧,O(n)复杂度
: 存一个candidate和一个count
: for (Card card : cards) {
: if (count == 0) {
: candidate = card;
: count = 1;
: } else if (testEquivalent(candidate, card)) {
: count++;
: } else {

d**********6
发帖数: 4434
8
n/2 equivalent概念模糊啊,必须问清楚面试官
不过如果如你所说,应该不少于O(n)吧,不两两跟所有其他卡比较过,根本无法知
道该不该扔掉

【在 o****i 的大作中提到】
: 你这个目测不对,就走一遍的话,前面过去的卡就算扔掉了,后面的candidate不能和
: 前面的比较,而且这个题的意思,我的理解是如果set是(1,1,2,2,3)的话是可以过得,
: 你的算法貌似不能过这种情况,因为只有一个candidate。

g*******g
发帖数: 50
9
">n/2" => ">2.5" => ">=3"

【在 o****i 的大作中提到】
: 你这个目测不对,就走一遍的话,前面过去的卡就算扔掉了,后面的candidate不能和
: 前面的比较,而且这个题的意思,我的理解是如果set是(1,1,2,2,3)的话是可以过得,
: 你的算法貌似不能过这种情况,因为只有一个candidate。

d**********6
发帖数: 4434
10
这思路应该是对的,其实就是quick sort
虽然qs的worst case是
O(n),但大家都接受一般情况O(nlog(n))

【在 z***m 的大作中提到】
: 1. 随便一张,可以把集合分成equivalent 和non-equivalent两类
: 2. 如果equivlent类里有多于n/2个, return true; 否则扔掉equivlent的所有卡,
: 回到1.
: 3. 如果卡都扔完了,还没有多于一半的那种卡,就return false

1 (共1页)
进入JobHunting版参与讨论
相关主题
csdn.net equivalent请教Intel的同学一个bonus的问题
面挂了 slideshare, 可以面linkedin吗?[OPENING] Senior Biocompatibility Engineer
问一道data engineer面试题,跪求答案【A】 Equivalent Rotational String
US equivalency assessment and translationsalesforce on-site有必要去吗?
报个微软的Offerjob offer letter 上这个bonus到底是什么意思?
有没有人办过 education evaluation ?Verilog问题
有没有对比各个城市收入的网站发个H1B的清单
急问,办H1b需要学历认证吗equivalent degree verification可以让律师做吗?
相关话题的讨论汇总
话题: equivalent话题: cards话题: count话题: whether