(leetcode)力扣100 96.只出现一次的数字(位运算)

题解

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

你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。

数据范围

1 <= nums.length <= 3 * 104

-3 * 104 <= numsi <= 3 * 104

除了某个元素只出现一次以外,其余每个元素均出现两次。

测试用例

示例1

java 复制代码
输入:nums = [2,2,1]

输出:1

示例 2 :

java 复制代码
输入:nums = [4,1,2,1,2]

输出:4

示例3

java 复制代码
输入:nums = [1]

输出:1

题解(时间On,空间O1)

java 复制代码
class Solution {
    public int singleNumber(int[] nums) {
        int single = 0;
        for (int num : nums) {
            single ^= num;
        }
        return single;
    }
}

思路

这道题怎么说呢,要是想到了位运算,确实特别简单,想不到的话抓耳挠腮(博主)。

因为异或满足这个规律,所以我们只需要把数组里的数按顺序异或一次,最后剩下的就是只出现过一次的数。

相关推荐
陈王卜8 分钟前
Reduce 算子优化笔记
算法
wabs66614 分钟前
关于图论【最短路径之Bellman_ford 算法(判断负权回路)|卡码网95.城市间货物运输II的思考】
数据结构·算法·图论·bellman_ford算法·卡码网·判断负权回路
YouonlyliveonceC29 分钟前
《大话数据结构》第4章实战:中缀表达式转后缀 + 后缀表达式求值(完整可运行实现)
算法
phoenix@Capricornus38 分钟前
从统计决策到贝叶斯估计
人工智能·算法·机器学习
AICDragon1 小时前
1.8%就够了:K3的896个MoE专家,为什么激活率这么低反而是好事?
人工智能·算法
VALENIAN瓦伦尼安教学设备1 小时前
ASHOOTER激光对中仪如何通过颜色确定调整是否合适
数据库·嵌入式硬件·算法
货拉拉技术1 小时前
重塑 Agent 度量衡:基于 LLM-as-a-Judge 的离线评估体系与实践
算法·设计模式
Dr.kangder1 小时前
嵌入式面试总结(一)——嵌入式系统实时性
面试·职场和发展·架构·嵌入式·虚拟化
车压1 小时前
从“为什么”理解注意力机制
算法
wabs6662 小时前
关于哈希表【力扣15.三数之和的思考】
数据结构·算法·leetcode·散列表·哈希表·三数之和