难度:中等一个整数数组,除了一个数之外所有数字都出现了2次,找出这个数字来。注意: 你的算法应该是线性运行复杂度,且不能使用额外内存空间。答案:public class Solution { public int singleNumber(int[] nums) { int n ...
分类:
编程语言 时间:
2015-08-28 00:23:45
阅读次数:
183
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路:因为只有两个只出现一次的数字,所以所有数字进行异或之后得到值res一定不是0.这样,res中其中至少1bit不是0,我们根据这个bit是否为0把数组分为两组,两个只出现一次的数字肯定在不同的组。其...
分类:
编程语言 时间:
2015-08-27 22:56:11
阅读次数:
187
问题:一个整数数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1)。分析:这是一个很新颖的关于位运算的题目。首先考虑这个问题的一个简单版本:一个整数数组里除了一个数字之外,其他的数字都出现两次,请写程序找出这个只出现一次的...
分类:
编程语言 时间:
2015-08-26 07:02:42
阅读次数:
223
题目
一个整型数组里除了两个数字之外,其他数字都出现了两次。请找出这两个只出现一次的数字。要求时间复杂度O(n),空间复杂度O(1)
思路
我们知道如果把题目中的两个数字换成一个的话,整个数组内的元素连续异或,最终的数便是那个出现一次的数,因为异或的性质:相同为0,不同为1,所以有任何数字异或自己都是0。
换成两个数字后,我们可以继续全局异或,得到的数必然不等于0,那么也就是说二进制中必然...
分类:
编程语言 时间:
2015-08-21 23:24:46
阅读次数:
162
/*
求一个数组中只出现一次的数字(注:只针对数组中有两个数不同,且其他数字两两相同)
题目:一个整型数组里除了两个数字出现一次外,其他的数字都出现了两次;求出现一次的数字;
如:数组a[]={2,4,3,6,3,2,5,5};执行程序后应输出4和6;因为4,6只在该数组中出现了一次
思路:两个数字相同其异或结果一定为0,先异或—>再分组—->再对每个子序列异或...
分类:
编程语言 时间:
2015-08-21 13:40:17
阅读次数:
209
【136-Single Number(只出现一次的数字)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题 Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a...
分类:
编程语言 时间:
2015-08-18 07:57:37
阅读次数:
233
【137-Single Number II(只出现一次的数字II)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题 Given an array of integers, every element appears three times except for one. Find that single one.
Note:
Your algorithm sh...
分类:
编程语言 时间:
2015-08-18 07:56:07
阅读次数:
249
#includeusing namespace std;bool iswei1(int data,int wei){ int i=8*sizeof(int); data=data>>(i-wei); return(data&1);}void number1(int *list,in...
分类:
编程语言 时间:
2015-08-13 17:25:06
阅读次数:
116
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。
* 请些程序找出这两个只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1)
例如输入数组{2,4,3,6,3,2,5,5},因为只有4,6这两个数字只出现一次,其他数字都出现了两次,所以输出4,6
这是一个比较难的题目,很少有人在面试的时候不需要提示一下子想到最好的解决办法。一般当应聘者想了几分钟那个后还没有思路,...
分类:
编程语言 时间:
2015-08-10 20:05:48
阅读次数:
119
题目描述:
一个整型数组里除了两个数字之外,其他的数字都出现了两次。编写程序找出这个两个只出现一次的数字。要求时间复杂度O(n),空间复杂度O(1).
如 {2,4,3,6,3,2,5,5},输出{4,6}解析:
空间复杂度为O(1)断绝了用hash-table的思路,时间复杂度O(n)断绝排序的思路。如何判断一个数字出现2次呢?
计数
异或:如果出现2次,任意数字和自己异或都为0
异或的性质...
分类:
编程语言 时间:
2015-07-29 19:28:57
阅读次数:
114