數據結構與算法《二》

真理只有一個,它不在宗教中,而是在科學中。 ---達芬奇數組

LeetCode: 只出現一次數字

給定一個非空整數數組,除了某個元素只出現一次之外,其他每一個元素均出現兩次。找出那個只出現了一次的元素。微信

說明:大數據

  • 使用線性時間複雜度,不使用額外空間。

示例:code

輸入: [2,2,1]
輸出: 1

分析:

因爲對時間複雜度和空間有限制,顯然不能進行兩次遍歷和另開闢空間,這塊考察位運算,相同的兩個數作異或運算,結果爲0,由於數組中除了一個元素只出現一次外,其餘元素都出現兩次,若是把全部的數都異或,相同的數字異或爲0,最後只剩下出現一次的數字,它和0異或,結果就是它自己。leetcode

Code:io

class Solution {
    public int singleNumber(int[] nums) {
        int num = 0;
        for(int i = 0; i < nums.length; i++){
            num = num ^ nums[i];
        }
        return num;
    }
}

按期分享大數據與知識圖譜相關知識點:
微信公衆號class

相關文章
相關標籤/搜索