Single Number II(落单的数 II)

http://www.lintcode.com/en/problem/single-number-ii/

public class Solution {
    /**
     * @param A : An integer array
     * @return : An integer 
     */
    public int singleNumberII(int[] A) {
        // write your code here
        if (A == null || A.length == 0) {
            return 0;
        }
        if (A.length == 1) {
            return A[0];
        }
        //对数组进行排序,
        Arrays.sort(A);
        int i = 0;
        while (true) {
            //排序过后必然是三个相等数在一起,如果两个数不等,那么必然是这个数,如果到最后一个数,也是它。
            if (i == A.length - 1 || A[i] != A[i + 1]) {
                return A[i];
            } else {
                i += 3;
            }
        }
    }
}

你可能感兴趣的:(Single Number II(落单的数 II))