列表

详情


136. 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

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

示例 2:

输入: [4,1,2,1,2]
输出: 4

相似题目

只出现一次的数字 II

只出现一次的数字 III

丢失的数字

寻找重复数

找不同

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int singleNumber(vector<int>& nums) { } };

cpp 解法, 执行用时: 16 ms, 内存消耗: 16.8 MB, 提交时间: 2023-10-11 10:41:34

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        for ( int i = 1; i < nums.size(); ++i )
            nums[0] ^= nums[i];
        return nums[0];
    }
};

java 解法, 执行用时: 1 ms, 内存消耗: 43.5 MB, 提交时间: 2023-10-11 10:41:03

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

golang 解法, 执行用时: 16 ms, 内存消耗: 6.1 MB, 提交时间: 2021-07-30 10:08:08

func singleNumber(nums []int) int {
    ans := nums[0]
    for i := 1; i < len(nums); i++ {
        ans ^= nums[i]
    }
    return ans
}

golang 解法, 执行用时: 16 ms, 内存消耗: 6.1 MB, 提交时间: 2020-11-18 22:10:05

func singleNumber(nums []int) int {
    for i := 1; i < len(nums); i++ {
        nums[0] ^= nums[i]
    }
    return nums[0]
}

python3 解法, 执行用时: 56 ms, 内存消耗: 15 MB, 提交时间: 2020-11-18 22:08:56

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        for i in range(1, len(nums)):
            nums[0] ^= nums[i]
        return nums[0]

python3 解法, 执行用时: 60 ms, 内存消耗: N/A, 提交时间: 2018-09-05 22:22:20

class Solution:
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        nums.sort()  #先对数组排序
        if len(nums) == 1:
            return nums[0]
        if nums[0] != nums[1]:
            return nums[0]
        if nums[-1] != nums[-2]:
            return nums[-1]
        for i in range(1, len(nums)-1):
            if nums[i] not in [nums[i-1], nums[i+1]]:
                return nums[i]
            
        

上一题