1. 程式人生 > >Crack LeetCode 之 136. Single Number

Crack LeetCode 之 136. Single Number

https://leetcode.com/problems/single-number/

所有數取異或,最終結果就是那個單一的數,這是因為相同的兩個數異或的結果為0。演算法的時間複雜度為O(n),空間複雜度為O(1)。

c++程式碼如下:

class Solution {
public:
	int singleNumber(vector<int>& nums) {
		if (nums.empty())
			return 0;

		int res = 0;
		for (auto i : nums)
			res ^= i;

		return res;
	}
};

python程式碼如下:
 

class Solution:
    def singleNumber(self, nums):
        if length(nums) == 0:
            return 0

        res = 0
        for i in nums:
            res = res ^ i

        return res