[leetcode] Single Number
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?
https://oj.leetcode.com/problems/single-number/
思路:所有元素异或之后所留下的即是。
public class Solution { public int singleNumber(int[] A) { if (A == null || A.length == 0) return 0; if (A.length == 1) return A[0]; int n = A.length; int result = A[0]; for (int i = 1; i < n; i++) result = result ^ A[i]; return result; } public static void main(String[] args) { System.out.println(new Solution().singleNumber(new int[] { 1, 1, 2, 3, 3, 4, 4, 0, 0 })); } }
第二遍记录:可以改的简洁点。
public class Solution { public int singleNumber(int[] A) { int res=0; for(int i=0;i<A.length;i++){ res ^=A[i]; } return res; } }