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

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

相关文章
|
2月前
|
算法
Leetcode(只出现一次的数字)
这篇文章介绍了如何使用位异或运算法则解决LeetCode上的一个编程问题,即在数组中找出只出现一次的数字,而其他数字都出现两次。
14 0
|
算法 Java
大厂算法题目-单链表删除数字
大厂算法题目-单链表删除数字
大厂算法题目-单链表删除数字
|
7月前
|
算法
【力扣】136. 只出现一次的数字
【力扣】136. 只出现一次的数字
|
7月前
leetcode:476. 数字的补数
leetcode:476. 数字的补数
115 0
|
7月前
|
算法
leetcode-260:只出现一次的数字 III
leetcode-260:只出现一次的数字 III
41 0
|
算法 Java C语言
leetcode之只出现一次的数字
今天为大家分享的是关于在数组中找到只出现一次数字的系列题目,我将使用c跟Java来实现,希望我的分享能够帮助到大家。
|
算法 C++ Python
每日算法系列【LeetCode 面试题 17.05】字母与数字
每日算法系列【LeetCode 面试题 17.05】字母与数字
|
机器学习/深度学习 存储 算法
算法打卡Day23_leetcode _136. 只出现一次的数字
算法打卡Day23_leetcode _136. 只出现一次的数字
算法打卡Day23_leetcode _136. 只出现一次的数字
|
机器学习/深度学习 算法
【LeetCode】只出现一次的数字
【LeetCode】只出现一次的数字
【LeetCode】只出现一次的数字
|
Python
LeetCode 1323. 6 和 9 组成的最大数字
给你一个仅由数字 6 和 9 组成的正整数 num。
105 0