Single Number

来源:互联网 发布:宝宝哭声辨别软件 编辑:程序博客网 时间:2024/04/30 21:16

贴两种方法,一种是用HashMap,另一种用bit manipulation, 但是我觉得第二种方法是因为题意不严密,{2,2,4,4,4,4} 4也不是出现了两次,但是你用第二种方法就根本得不到答案的。test case没有测试这种情况,说明默认不是出现了两次的那个数只出现了一次。

public int singleNumber(int[] A) {        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();        for (int i = 0; i < A.length; i++){            if(!map.containsKey(A[i])) {                map.put(A[i], i);            }            else {                map.remove(A[i]);            }        }        for (int i = 0; i < A.length; i++){            if(map.containsKey(A[i])) {return A[i];}        }        return 0;    }

public int singleNumber(int[] A) {        if(A.length == 1) return A[0];        int i = 0;                 while(i < A.length-1) {A[i+1] = A[i]^A[i+1];i++;} // 建议另外用一个retsult来存储结果,这样不会改变A数组,记住Java是传引进来,而没有另外建一个copy        return A[A.length-1];    }


0 0
原创粉丝点击