题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。还是理解不够深刻。 这题的主要思路还是之前的数组中只出现一次的数字的那种模式,一次遍历加上异或运算。那么这个异或的值肯定是这两个只出现一次的数字的相异或的...
分类:
编程语言 时间:
2015-03-21 22:42:34
阅读次数:
221
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。还是理解不够深刻。
这题的主要思路还是之前的数组中只出现一次的数字的那种模式,一次遍历加上异或运算。那么这个异或的值肯定是这两个只出现一次的数字的相异或的值。那么这个值的二进制表现形式中的1的结果就表示这两个数字在该bit位上不一样。那么通过此举,我们可...
分类:
编程语言 时间:
2015-03-20 00:03:13
阅读次数:
269
实现代码:1、PHP实现:<?php
$arr=array(1,1,5,3,2,2);
//因为每个元素都需要分别和其他的元素进行比较
//所以需要双重循环
for($i=0;$i<count($arr);$i++){
for($j=0;$j<count($arr);$j++){
//此处目的是避免数组元素和自己进行比较
if($i!=$j){
//找出相等的两..
分类:
编程语言 时间:
2014-12-29 18:34:26
阅读次数:
180
题目要求: 一个整型数组里除了两个数字机之外,其他的数字都出现了两次。 请写程序找出这两个只出现一次的数字。要求时间复杂度O(N).空间复杂度O(1). 参考资料:剑指offer第40题。题目分析: 已知: 1.两个相同的数字异或的结果为0,即a^a = 0. 2.两个不相同的数...
分类:
编程语言 时间:
2014-11-17 11:55:16
阅读次数:
207
61.找出数组中两个只出现一次的数字(数组)题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是 O(n),空间复杂度是 O(1)。思路:瞄到了一眼提示,说是位运算。根据异或的运算性质:a ⊕ b ⊕ a = b把所有的数字都异或一遍得到...
分类:
其他好文 时间:
2014-08-14 19:23:49
阅读次数:
188