Single_Number

来源:互联网 发布:复杂网络的定义 编辑:程序博客网 时间:2024/06/06 11:48

题目描述:

  Given an array of integers, every element appears twice except for one.
  Find that single one.
  Note:
  Your algorithm should have a linear runtime complexity.
  Could you implement it without using extra memory?
 (给定一组整数,除了一个元素外,每个元素都出现两次。找到那一个。
    注:
    你应该有一个线性时间复杂度的算法。你能实现它,而无需使用额外的内存?)

思路:用异或(同0异一)消掉相同的数留下来的就是单独的数。例如[1,1,2,2,3],1^1^2^2^3 == 0^2^2^3 == 0^0^3 == 3.

public class Single_Number {public static int singleNumber(int[] nums) {int result = 0;for(int i=0;i<nums.length;i++){result ^= nums[i];}return result;            }public static void main(String[] args) {int nums[] = {1,2,2};System.out.println(singleNumber(nums));}}