LintCode问题图解-11

本文准备讲解1个简单的算法编程问题, 这个算法编程问题来自LintCode平台。不了解.LintCode平台的读者可以阅读笔者文章(在线编程平台推荐-LeetCode)。问题的英文版本描述如下:

Single Number III

Given 2*n + 2 numbers, every number occurs twice except two, find them.

Example

Given [1,2,2,3,4,4,5,3] return 1 and 5

单次出现的数

给出2*n + 2个数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。

样例

给出[1,2,2,3,4,4,5,3],返回 1和5

该问题的标准算法需要用到位处理方案,对任何数字A而言 A 位异或 A  会将得到 0。现在公布1种不做位处理的算法方案。这种非位处理方案的缺点是速度较慢,阅读非位处理方案比较容易。好像用高级语言和机器语言做同样1个任务,高级语言有高级语言的优点,机器语言有机器语言的长处。


LintCode问题图解-11_第1张图片
非位处理的算法

你可能感兴趣的:(LintCode问题图解-11)