找出1到10w中没有出现的两个数字
2011-08-27 14:18
253 查看
有1到10w这10w个数,去除2个并打乱次序,如何找出那两个数?
方法1:
申请10w个bit的空间,每个bit代表一个数字是否出现过。
开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。
然后依次读入已经打乱循序的数字,并将对应的bit设为1。
当处理完所有数字后,根据为0的bit得出没有出现的数字。
方法2:
首先计算1到10w的和,平方和。
然后计算给定数字的和,平方和。
两次的到的数字相减,可以得到这两个数字的和,平方和。
所以我们有
x + y = n
x^2 + y^2 = m
解方程可以得到x和y的值。
方法1:
申请10w个bit的空间,每个bit代表一个数字是否出现过。
开始时将这10w个bit都初始化为0,表示所有数字都没有出现过。
然后依次读入已经打乱循序的数字,并将对应的bit设为1。
当处理完所有数字后,根据为0的bit得出没有出现的数字。
方法2:
首先计算1到10w的和,平方和。
然后计算给定数字的和,平方和。
两次的到的数字相减,可以得到这两个数字的和,平方和。
所以我们有
x + y = n
x^2 + y^2 = m
解方程可以得到x和y的值。
相关文章推荐
- 找出1到10w中没有出现的两个数字
- 找出1到10w中没有出现的两个数字
- 找出1到10w中没有出现的两个数字
- 算法题:找出整数数组中两个只出现一次的数字
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。 请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n), 空间复杂度是O(1)
- 位运算-Single Number III(只有两个不同的数字出现了一次,其余出现了两次,找出这两个数)
- 剑指Offer38 数组所有数字出现两次,只有两个出现了一次,找出这两个数字
- 有一组数字,有两个数字只出现一次,其他数字都是成对出现的,请找出这个数字。
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这两个数字,编程实现
- 找出数组中两个只出现一次的数字
- 61 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 一个数组只有两个数字出现一次,其他数字都出现两次,找出这两个数
- 找出数组中两个只出现一次的数字
- 找出数组中两个只出现一次的数字
- 一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,找出这个数字
- 找出数组中只出现一次的两个数字
- 找出数组中两个只出现一次的数字