写在前面
前几天碰到一道被"全新包装"的经典问题:
Problem 1.1
给定2n+2个数, 其中2n个数两两相同, 另外两个数都是唯一的. 请设计一个算法找出这两个数, 要求使用的空间尽可能的少.
从一道面试题的角度来讲, 这个问题被包装的很巧妙. 如果应聘者临时抱佛脚地翻阅一遍经典算法题的话, 则很难找到与这个问题的关联; 对于面试官来说, 就更容易淘汰实力不足的应聘者.
本文将从”位“这一个基础的知识模块谈起, 提及编码和位运算, 进而给出这道题目, 以及一系列经典问题的解法.
Problem 1.1
给定2n+2个数, 其中2n个数两两相同, 另外两个数都是唯一的. 请设计一个算法找出这两个数, 要求使用的空间尽可能的少.
从一道面试题的角度来讲, 这个问题被包装的很巧妙. 如果应聘者临时抱佛脚地翻阅一遍经典算法题的话, 则很难找到与这个问题的关联; 对于面试官来说, 就更容易淘汰实力不足的应聘者.
本文将从”位“这一个基础的知识模块谈起, 提及编码和位运算, 进而给出这道题目, 以及一系列经典问题的解法.