leetcode-136:只出现一次的数字

简介: leetcode-136:只出现一次的数字

题目

题目链接

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

说明:

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

示例 1:

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

示例 2:

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

解题:

方法一:位运算

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        return reduce(lambda x, y: x ^ y, nums)

关于reduce函数的链接

输入nums = [4,1,2,1,2],可得到结果4,巧妙的利用了位与运算。

方法二:(利用集合) 虽然复杂度有点高,不符合题意,但是容易想到

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        num1 = sum(list(set(nums)))*2
        num2 = sum(nums)
        return num1-num2

没有时间复杂度限制的其他方法可以自己尝试一下。

相关文章
【力扣每日一题】1365. 有多少小于当前数字的数字
【力扣每日一题】1365. 有多少小于当前数字的数字
|
1月前
|
算法
【力扣】136. 只出现一次的数字
【力扣】136. 只出现一次的数字
|
1月前
leetcode:476. 数字的补数
leetcode:476. 数字的补数
89 0
|
1月前
|
算法
leetcode-260:只出现一次的数字 III
leetcode-260:只出现一次的数字 III
24 0
|
8月前
|
算法
【LeetCode】136. 只出现一次的数字、118. 杨辉三角
目录 136. 只出现一次的数字 118. 杨辉三角
29 0
|
算法 Java C语言
leetcode之只出现一次的数字
今天为大家分享的是关于在数组中找到只出现一次数字的系列题目,我将使用c跟Java来实现,希望我的分享能够帮助到大家。
|
机器学习/深度学习 算法
【LeetCode】只出现一次的数字
【LeetCode】只出现一次的数字
【LeetCode】只出现一次的数字
|
机器学习/深度学习 存储 算法
算法打卡Day23_leetcode _136. 只出现一次的数字
算法打卡Day23_leetcode _136. 只出现一次的数字
算法打卡Day23_leetcode _136. 只出现一次的数字
|
Python
LeetCode 260. 只出现一次的数字 III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。
87 0
|
Python
LeetCode 476. 数字的补数
给你一个 正 整数 num ,输出它的补数。补数是对该数的二进制表示取反。
79 0