用线性时间复杂度实现找出数组中出现一次的元素
2016-10-22 10:34
405 查看
用线性时间复杂度实现找出数组中出现一次的元素默认只有三次和一次两种情况
public class fingNumber { public static void main(String [] args){ int [] arr=new int[]{3,4,3,4,3,4,5,5,5,6,6,6,7,7,7,8,8,8,1}; findNumber(arr); } private static void findNumber(int[] arr) { int a=0,b=0; for(int i=0;i<arr.length;i++){ b=a&(b^arr[i]); a=b|(a^arr[i]); } System.out.println(a); } }
相关文章推荐
- 用线性时间复杂度实现找出数组中出现一次的元素
- 用线性时间复杂度实现找出数组中出现一次的元素
- 用线性时间复杂度实现找出数组中出现一次的元素
- 用线性时间复杂度实现找出数组中出现一次的元素
- 如何快速找出一个数组中只出现一次的两个数,其他元素出现两次?保证时间复杂度O(n),空间复杂度O(1)
- 一个整型数组里除了两个数字之外,其他的数字都出现了两次。 请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n), 空间复杂度是O(1)
- 一个整型数组里除了一个数字之外,其他的数字都出现了两次。要求时间复杂度是O(n),空间复杂度是O(1),如何找出数组中只出现一次的数字
- 一个数组中,存在两个只出现一次的数字,其余的数字均出现两次。要求在时间复杂度o(n),空间复杂度为o(1)的情况下找出这两个数字
- 一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
- 一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
- 一个整型数组里除了一个或者两个或者三个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
- 整数数组中,每个元素均出现两次,除了一个元素例外,如何找出这个元素?能否设计一个线性时间的算法,且不需要额外的存储空间?
- 最大子数组之和(线性时间复杂度,C语言实现)
- 找出一个数组中出现次数超过一半的那个数字,要求时间复杂度O(n)和空间复杂度为O(1)。
- 由n个元素组成的数组,n-2个数出现了偶数次,两个数出现了奇数次,且这两个数不相等,如何用O(1)的空间复杂度,找出这两个数
- 数组a[N],存放了1至N-1个数,其中某个数重复一次。写一个函数,找出被重复的数字.时间复杂度必须为o(N)函数原型:
- 如何在O(n)的时间复杂度内找出数组中出现次数超过了一半的数
- Java实现 找出数组中出现次数超过数组长度一半的元素
- leetcode-singleNum2 找出一个数组中只出现过一次的元素
- 数组a[N],存放了N个数,其中某个数重复一次。 写一个函数,找出被重复的数字.时间复杂度必须为o(N)