leetcode每日一题.136:只出现一次的数字

简介: leetcode每日一题.136:只出现一次的数字

题目描述:


给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/single-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


示例1:


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


示例2:


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


分析:


直接异或所有元素,知道就能写出来,不知道就写不出来。


java:


class Solution {
    public int singleNumber(int[] nums) {
        int res = 0;
        for (int n : nums) {
            res ^= n;
        }
        return res;
    }
}


python:


class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        res = 0
        for n in nums:
            res = res ^ n
        return res


总结:


时间复杂度为O(n)。

目录
相关文章
|
5月前
|
存储 容器
【LeetCode刷题】只出现一次的数字(Ⅰ、Ⅱ、Ⅲ)
【LeetCode刷题】只出现一次的数字(Ⅰ、Ⅱ、Ⅲ)
|
6月前
每日一题——只出现一次的数字(II)
每日一题——只出现一次的数字(II)
每日一题——只出现一次的数字(II)
|
6月前
每日一题——只出现一次的数字
每日一题——只出现一次的数字
|
6月前
每日一题——只出现一次的数字(III)
每日一题——只出现一次的数字(III)
|
6月前
|
Java
每日一题《剑指offer》数组篇之和为S的两个数字
每日一题《剑指offer》数组篇之和为S的两个数字
43 0
每日一题《剑指offer》数组篇之和为S的两个数字
|
6月前
剑指Offer LeetCode 面试题57. 和为s的两个数字
剑指Offer LeetCode 面试题57. 和为s的两个数字
32 0
|
算法 C++ Python
每日算法系列【LeetCode 面试题 17.05】字母与数字
每日算法系列【LeetCode 面试题 17.05】字母与数字
|
存储 Java
《LeetCode刷题》—136.只出现一次的数字
《LeetCode刷题》—136.只出现一次的数字
90 0
《LeetCode刷题》—136.只出现一次的数字
LeetCode每日一题——878. 第 N 个神奇数字
一个正整数如果能被 a 或 b 整除,那么它是神奇的。
132 0