数组中只出现一次的两个数字之Ruby版
2014-06-30 12:06
274 查看
<pre name="code" class="ruby"><span class="comment" style="background-color: inherit; line-height: 22.5px; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 15px; margin: 0px; padding: 0px; border: none; color: rgb(0, 130, 0);">问题描述:在一个数组中除两个数字只出现1次外,其它数字都出现了2次, 要求尽快找出这两个数字。</span><span style="background-color: inherit; line-height: 22.5px; font-family: Consolas, 'Courier New', Courier, mono, serif; font-size: 15px; margin: 0px; padding: 0px; border: none;"> </span>
$a = [1,2,3,4,6,8,4,3,2,1] def findtwonotrepeat(a,n) $temp = 0 for i in 0...a.size $temp ^= a[i] #两个只出现一次数字的异或结果保存在temp中 end for j in 0...1.size break if ($temp>>j)&1 == 1 #确定第j位为两数字的不同位 end $pn = 0 $pm = 0 for i in 0...a.size if (a[i]>>j)&1 == 1 #将数组分成两半,每一半都有一个只出现一次的数字 $pn ^= a[i] else $pm ^= a[i] end end end findtwonotrepeat($a, $a.size) print $a
print "#{$pn} and #{$pm} are the two not repeat numbers in array.","\n"
相关文章推荐
- 面试题_找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- [数组]找出数组中两个只出现一次的数字
- 【每日面试题】找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 100题_34 找出数组中两个只出现一次的数字
- (34)-[转载] 程序员面试题精选100题 -找出数组中两个只出现一次的数字
- 微策略2011校园招聘笔试题(找出数组中两个只出现一次的数字)
- 每天一道算法题10 找出数组中两个只出现一次的数字
- 程序员面试100题之三十四,找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字
- 【转帖】找出数组中两个只出现一次的数字
- 程序员面试题精选100题(34)-找出数组中两个只出现一次的数字
- 程序员面试题精选(54):找出数组中两个只出现一次的数字
- 解题笔记(24)——找出数组中两个只出现一次的数字(数组)
- 找出数组中唯一出现一次的两个数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字 [No. 30]